天天看點

Codeforces 777A Shell Game

A. Shell Game

time limit per test:0.5 seconds

memory limit per test:256 megabytes

input:standard input

output:standard output

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·109) — 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.

Examples

4

2      
1      
1

1      

Note

In the first sample, the ball was initially placed beneath the middle shell and the operator completed four movements.

  1. During the first move operator swapped the left shell and the middle shell. The ball is now under the left shell.
  2. During the second move operator swapped the middle shell and the right one. The ball is still under the left shell.
  3. During the third move operator swapped the left shell and the middle shell again. The ball is again in the middle.
  4. Finally, the operators swapped the middle shell and the right shell. The ball is now beneath the right shell.

 題目連結:http://codeforces.com/problemset/problem/777/A

分析:找規律,純粹找規律,你說枚舉也行!我之前搞反了,連樣例都沒過,糾結了二十分鐘才發現問題,AC了!

下面給出AC代碼:

1 #include <bits/stdc++.h>
 2 using namespace std;
 3 int main()
 4 {
 5 
 6     int n,m;
 7     int a[3]={0,1,2};
 8     while(scanf("%d",&n)!=EOF)
 9     {
10         scanf("%d",&m);
11         if(n%2==0)
12         {
13             int k=n/2;
14             if(k%3==0)
15             {
16                 if(m==0)
17                     printf("0\n");
18                 else if(m==1)
19                     printf("1\n");
20                 else if(m==2)
21                     printf("2\n");
22             }
23             else if(k%3==1)
24             {
25                 if(m==2)
26                     printf("0\n");
27                 else if(m==0)
28                     printf("1\n");
29                 else if(m==1)
30                     printf("2\n");
31             }
32             else if(k%3==2)
33             {
34                 if(m==1)
35                     printf("0\n");
36                 else if(m==2)
37                     printf("1\n");
38                 else if(m==0)
39                     printf("2\n");
40             }
41         }
42         else
43         {
44             int t=(n+1)/2;
45             if(t%3==0)
46             {
47                 if(m==0)
48                     printf("0\n");
49                 else if(m==2)
50                     printf("1\n");
51                 else if(m==1)
52                     printf("2\n");
53             }
54             else if(t%3==1)
55             {
56                 if(m==1)
57                     printf("0\n");
58                 else if(m==0)
59                     printf("1\n");
60                 else if(m==2)
61                     printf("2\n");
62             }
63             else if(t%3==2)
64             {
65                 if(m==2)
66                     printf("0\n");
67                 else if(m==1)
68                     printf("1\n");
69                 else if(m==0)
70                     printf("2\n");
71             }
72         }
73     }
74     return 0;
75 }      

作  者:Angel_Kitty

出  處:https://www.cnblogs.com/ECJTUACM-873284962/

關于作者:阿裡雲ACE,目前主要研究方向是Web安全漏洞以及反序列化。如有問題或建議,請多多賜教!

版權聲明:本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連結。

特此聲明:所有評論和私信都會在第一時間回複。也歡迎園子的大大們指正錯誤,共同進步。或者直接私信我

聲援部落客:如果您覺得文章對您有幫助,可以點選文章右下角【推薦】一下。您的鼓勵是作者堅持原創和持續寫作的最大動力!

歡迎大家關注我的微信公衆号IT老實人(IThonest),如果您覺得文章對您有很大的幫助,您可以考慮賞部落客一杯咖啡以資鼓勵,您的肯定将是我最大的動力。thx.

Codeforces 777A Shell Game

我的公衆号是IT老實人(IThonest),一個有故事的公衆号,歡迎大家來這裡讨論,共同進步,不斷學習才能不斷進步。掃下面的二維碼或者收藏下面的二維碼關注吧(長按下面的二維碼圖檔、并選擇識别圖中的二維碼),個人QQ和微信的二維碼也已給出,掃描下面👇的二維碼一起來讨論吧!!!

Codeforces 777A Shell Game

歡迎大家關注我的Github,一些文章的備份和平常做的一些項目會存放在這裡。