問題はこちら
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 |