読者です 読者をやめる 読者になる 読者になる

メモ

yukicoderで遊んでいる競プロゆるふわ勢

yukicoder No.418 ミンミンゼミ

問題はこちら
No.418 ミンミンゼミ - yukicoder

Sはミーン文字列の結合であり、ミーン文字列には'n'がちょうど1つ含まれることから、nの個数を数えれば良い

int main(){
	char c[110];
	int i,s=0;
	gets(c);
	for(i=0;c[i];i++)if(c[i]=='n')s++;
	printf("%d",s);
	return 0;
}

Sには'm''i''-''n'のいずれかしか含まれないことから、最下位bitを見ればnが識別できる
改行の分を1減らす必要があるので、マイナス方向へ数えていって、最後にbitnotをする

s;main(i){for(;i=~getchar();s-=i&1);s=!printf("%d",~s);}

56B

2016/10/16追記
出力もまとめる

i;main(s){for(;i=~getchar()?:!printf("%d",-s);s-=i&1);}