题目链接:
https://codeforces.com/problemset/status?my=on
题目大意:
大小为 a * b 的桌子,现在有无限个 r * r 的盘子,游戏的一步操作定义为将盘子放桌上,不能移动桌子上的盘子,不能拿走盘子,现在有两个人玩这个游戏,第一个人先操作,每个人都进行最优的操作,判断谁能赢,第一个人赢输出“First”,第二个人赢输出“Second”
思路:
博弈问题,每个人的最优操作就是将盘子放在桌子中间,当第一个人能放盘子时,第二个人就输了。
这里有两种情况:
1.当第二个人不能放盘子,显然,他输了
2.当第二个人能放盘子,说明剩下的空间中还能放下 四个盘子,因为第一个人放的是中间,而第二个人还能放,说明四个角都还能放,那么当四个角都被填上后,又是第二个人去放盘子,就又是这两种情况了
代码:
#include <bits/stdc++.h>
using namespace std;
int a, b, r;
int main(){
cin >> a >> b >> r;
if (2 * r <= a && 2 * r <= b) cout << "First\n"; //能放盘子
else cout << "Second\n";
return 0;
}