codeforces 630R Game
There is a legend in the IT City college. A student that failed to answer all questions on the game theory exam is given one more chance by his professor. The student has to play a game with the professor.
The game is played on a square field consisting of n × n cells. Initially all cells are empty. On each turn a player chooses and paint an empty cell that has no common sides with previously painted cells. Adjacent corner of painted cells is allowed. On the next turn another player does the same, then the first one and so on. The player with no cells to paint on his turn loses.
The professor have chosen the field size n and allowed the student to choose to be the first or the second player in the game. What should the student choose to win the game? Both players play optimally.
The only line of the input contains one integer n (1 ≤ n ≤ 1018) — the size of the field.
Output number 1, if the player making the first turn wins when both players play optimally, otherwise print number 2.
1
1
2
2
这是一道博弈题,当n是奇数时先出的必然赢,否则必输
#include<stdio.h> //r #include<string.h> #include<stdlib.h> #include<algorithm> #include<math.h> #include<queue> #include<stack> #define INF 0x3f3f3f #define MAX 100100 #define LL long long using namespace std; int main() { LL n,m,j,i; while(scanf("%lld",&n)!=EOF) { if(n&1) printf("1\n"); else printf("2\n"); } return 0; }