むずかしめに感じた
A
int cnt[11]のような配列を用意して
cnt[ni()]++とする。
したら配列に入っている奇数のときの
インデックスが答え
B
島の合計人数がsなら、
1つの島にはs / n人いなきゃいけないことになる。
島の人数をm個足していって、
sum a / m = s / n
になったときに橋をかければいい。
もちろん余りが出てはいけないので、
ちゃんとチェックすること
C
ゲーム系。紙に書いて、どういうときに勝ち確定になるか
そのときどのくらいの長さが続くか考えてみる。
すると、便宜上 m = n + 1 で勝ち確定として
(nを超えた数が手番に回ってきた -> 勝ち)、
- 勝ち確定なら -> m = m / 2 切り上げで負け確定に遷移
- 負け確定なら -> m = (m - 1) / 2 切り上げで勝ち確定に遷移
としていくと最後m = 1になったとき、
勝ち確定か負け確定かが分かる。
負けなら2xをとっても負けてしまい、
勝てるなら2x + 1も選択するから
勝ち確定の一番小さい数までの距離は
負け確定の一番小さい数までの距離より長い
うまい説明があるといいんだけどなあ・・・