Brave game
Time Limit: 1000/1000 MS (Java/others) memory limit: 32768/32768 K (Java/Others)
Total submission (s): 6592 accepted submission (s): 4410
Problem description when I was a university student ten years ago, China introduced some film blockbusters from abroad every year. One of the movies was called "the player's game" (English name: zathura ), until now, I have been impressed by some of the Computer stunts in the movie.
Today, we chose the computer test as a brave choice. In this short term, we are talking about the game topic. Therefore, now everyone is playing the "multiplayer game", which is why I name this question.
Of course, in addition to being brave, I also hope to see "integrity". No matter what the test scores are, what I want to see is a real result. I believe everyone can do it ~
What is the first game to be played by beginners? It is very simple. It is defined as follows:
1. This game is a two-person game;
2. There are a pile of stones with N in total;
3. Take turns;
4. Each step can take 1... M stones;
5. the first party to win the light stones;
If both sides of the game are using the best strategy, please output which one can win.
The input data first contains a positive integer c (C <= 100), indicating that there are group C test data.
Each group of test data occupies one row and contains two integers n and M (1 <= n, m <= 1000). For the meanings of N and M, see the topic description.
Output: if the first person wins, output "first"; otherwise, output "second". The output of each instance occupies one row.
Sample Input
223 24 3
Sample output
firstsecond
Before making this battle, add the following knowledge:
Bash game: there are only a bunch of N items, and two people take things from the pile of items in turn, each time at least one, a maximum of M. The final winner wins.
Obviously, if n = m + 1, a maximum of m items can be taken at a time. Therefore, no matter how many items are taken by the first accessor, the latter can take the remaining items at a time, the latter wins. Therefore, we discovered the rule of How to Win: If n = (m + 1) R + S, (R is an arbitrary natural number, S ≤ m ), the first accessors must take s items. If the second accessors take K (≤ m) items, the first accessors take m + 1-K items, and the result is (m + 1) (r-1), and later to maintain such a method, then the first accessors certainly win. In short, we need to leave a multiple (m + 1) to the opponent to win.
This game can also have a disguised gameplay: two people report at least one message each time, and a maximum of ten messages each time. Who can report to the 100 winner.
That is to say, if n % (m + 1) = 0, the latter wins, whereas the former wins.
#include<iostream>#include<cstdio>using namespace std;int main(){ int t,n,m; scanf("%d",&t); while(t--) { scanf("%d %d",&n,&m); if(n%(m+1)) puts("first"); else puts("second"); } return 0;}