1550 [CF1000]Shell Game
2017-05-28 14:52
239 查看
Description
Bomboslav likes to look out of the window in his room and watch lads outside playing famous shell game. The game is played by two persons: operator and player. Operator takes three similar opaque shells and places a ball beneath one of them. Then he shuffles the shells by swapping some pairs and the player has to guess the current position of the ball.Bomboslav noticed that guys are not very inventive, so the operator always swaps the left shell with the middle one during odd moves (first, third, fifth, etc.) and always swaps the middle shell with the right one during even moves (second, fourth, etc.).
Let’s number shells from 0 to 2 from left to right. Thus the left shell is assigned number 0, the middle shell is 1 and the right shell is 2. Bomboslav has missed the moment when the ball was placed beneath the shell, but he knows that exactly n movements were made by the operator and the ball was under shell x at the end. Now he wonders, what was the initial position of the ball?
Input
The first line of the input contains an integer n (1 ≤ n ≤ 2·10^9) — the number of movements made by the operator.The second line contains a single integer x (0 ≤ x ≤ 2) — the index of the shell where the ball was found after n movements.
Output
Print one integer from 0 to 2 — the index of the shell where the ball was initially placed.Sample Input 1
42
Sample Output 1
1Sample Input 2
11
Samppe Output 2
0Submission
cfa.cpp
#include<iostream> using namespace std; int main(){ int count,final; cin>>count>>final; int mod=count%6; int box[6][3]={{0,1,2},{1,0,2},{2,0,1},{2,1,0},{1,2,0},{0,2,1}}; for(int i=0;i<3;i++){ if(box[mod][i]==final){ cout<<i<<endl; break; } } }
Standard Answer
cfa.cpp
#include <cstdio> #include <cstring> #include <algorithm> using namespace std; int main() { int n, p; scanf("%d%d", &n, &p); n %= 6; int now[3] = {0, 0, 0}; now[p] = 1; while(n) { if(n & 1) swap(now[0], now[1]); else swap(now[1], now[2]); // printf("%d %d %d\n", now[0], now[1], now[2]); n--; } if(now[0]) printf("0\n"); else if(now[1]) printf("1\n"); else printf("2\n"); return 0; }
相关文章推荐
- cf 777A - A. Shell Game (水)
- CodeForces 777A Shell Game
- CF 451 C Predict Outcome of the Game(数学题)
- CF —— Codeforces Round #428 (Div. 2) B. Game of the Rows
- Shell Game (Codeforces-777A)
- cf——A. The Great Game
- CF Bear and Game
- shell脚本输出1-1000内的偶数
- Codeforces Round #401(Div. 2)A. Shell Game【循环节规律】
- 【CodeForces 777A】Shell Game(模拟)
- Codeforces Round #401 (Div. 2)A. Shell Game(水题~)
- CF 354B - Game with Strings(状压+博弈)
- CF_462B_ApplemanAndCardGame
- [Shell]Tetris Game
- cf D. "Or" Game (前缀+后缀维护单点更新)
- SRM 606 DIV2 1000 EllysCandyGame
- GYM 100796 I.Shell Game(计算几何)
- CF 256C Furlo and Rublo and Game【博弈论,SG函数】
- 【CF 534F】Game
- hdu 5975 Aninteresting game Time Limit: 2000/1000 MS (Java/Others) Memory LimiAninteresting game