のんびり過ごす。TopCoder SRM619
夜は2クレだけ某所のゲーセンへ。
リフレクがプレーしてないまま放置されていて、自動SAVEDだったのでどうにも。
その後やったら更新しました。フルコンではないですが。
20時にはTopCoder SRM619に参加。
A問題は、いくつかの石の山があり、その中の1つを選んで、1個以上の2つの山にわける。
それを、残りの石の山に追加していくという動作をしたときに、
先手が勝てるか負けるかを判定せよ。
コレはヤバゲな問題か…と思いましたが、
ちょっと考えると、1の山がゲーム終盤まで残るということは、
全部が1の山でない限りは絶対に不可能であり、
その勝敗は奇数個の山か、偶数個の山かで決まるということがわかります。
あとは、山が2個以下だとこの動作ができないので負けます。
それを書くだけです。
public class SplitStoneGame {
public String winOrLose(int[] number) {
int count = 0;
for(int i = 0 ; i < number.length ; i++){
if(number[i] > 1)count++;
}
if(number.length <= 2)return "LOSE";
if(count < 1)return "LOSE";
if(number.length % 2 == 0)return "LOSE";
return "WIN";
}
}
Mediumは問題文が長いので読むのを諦めました。
1274->1340
by ddrer-yossi | 2014-05-05 23:32 | TopCoder