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

メモ

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

yukicoder No.88 次はどっちだ

問題はこちら
No.88 次はどっちだ - yukicoder

パスはなかったので、既におかれている石を数えれば良い
あるいはまだ石のおかれていないマスを数えれば良い

int main(){
	int a=0,n=71;
	char s[7];
	scanf("%s",s);
	if(s[0]=='o')a++;
	//最後に偶奇で判定するので、先手番が逆になれば逆になるようにinc
	while(n--)if(getchar()=='.')a++;
	//改行が文字数に含まれることに注意
	printf(a%2?"yukiko":"oda");
	return 0;
}

読み込む文字数が一定なら'.'でないものを数えればいい
……そういえば「yukiko」と「oda」は文字数の偶奇が違うから、これもまとめて読み込んじゃっていいぞ!

s;main(a){for(;read(0,&s,1);a+=s!=46);s=!puts(a%2?"oda":"yukiko");}

67B
16/04/23追記

さらにぐっと睨むとこんなカウントの仕方が

s;main(a){for(;read(0,&s,1);a+=s%3);s=!puts(a%2?"yukiko":"oda");}

65B

文字 %3
. 46 1
b 98 2
w 119 2
y 121 1
u 117 0
k 107 2
i 105 0
k 107 2
d 100 1
a 97 1