メモ

yukicoderでゆるふわgolf

yukicoder No.559 swapAB列

問題はこちら
No.559 swapAB列 - yukicoder

求めるものは転倒数と同値
先頭から見ていってAが登場する度に、それ以前に登場したBの個数を数えれば良い

char s[99];
b,ans,n;
main(){
	gets(s);
	n=strlen(s);
	for(int i=0;i<n;i++){
		if(s[i]=='A')ans+=b;
		if(s[i]=='B')b++;
	}
	printf("%d",ans);
}

'A'は66、'B'は65なので、%2と%5でそれぞれ01にすることができる

b,s;
main(c){
	for(;read(0,&c,1);b+=c%5)s+=c%2*b;
	printf("%d",s);
}

62B