kmjp's blog

競技プログラミング参加記です

Rockethon 2015 : A. Game

Rockethonは不参加。
Aは極端に難易度低いし、ここで取り上げなくてもいいかなと思ったけど一応。
http://codeforces.com/contest/513/problem/A

問題

先手はN1個、後手はN2個のボールを持っている。
先手は1ターンに1~K1個のいずれか、後手は1ターンに1~K2個のいずれかを手持ちのボールから投げ捨てる。
先にこれ以上行動できなくなった方の負けである。

互いに最適手を取った場合勝者はどちらか。

解法

どちらも長いターン数粘りたいので、1ターンに1個ずつ投げるのが最適。
よってN1>N2なら先手勝利、N1≦N2なら後手勝利。

int N[2],K[2];

void solve() {
	int i,j,k,l,r,x,y; string s;
	cin>>N[0]>>N[1]>>K[0]>>K[1];
	if(N[0]>N[1]) _P("First\n");
	else _P("Second\n");
}

まとめ

考察が済めば実装は簡単。