codeforces 796B Find The Bone

题目链接:http://codeforces.com/contest/796/problem/B

题意:给你n个杯子,坐标从1到n,然后m个洞,坐标hi。然后交换k次杯子,交换的顺序告诉你。一开始骨头在1坐标处,在交换过程中,如果坐标x出是洞,那么骨头将会停留在洞中。问你最后骨头停留的坐标。。

分析:直接按照题意模拟就行了,只需要记住现在骨头在什么位置,是否在洞中。

AC代码:

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 
 4 int a[1000005];
 5 int b[1000005];
 6 int main() {
 7 
 8     for(int i=1;i<=1000004;i++){
 9         b[i]=i;
10     }
11     int n,m,k;
12     scanf("%d%d%d",&n,&m,&k);
13     memset(a,0,sizeof(a));
14     int zb;
15     for(int i=1;i<=m;i++){
16         scanf("%d",&zb);
17         a[zb]=1;
18     }
19     int result=0;
20     int x,y,now=1;
21     int p=0;
22     for(int i=1;i<=k;i++){
23         scanf("%d%d",&x,&y);
24         if(result==0){
25             if(a[now]==1) {
26                 result=now;
27             }
28            if(x==now){
29                 now=y;
30            }
31            else if(y==now){
32                 now=x;
33            }
34         }
35     }
36     if(result==0) cout<<now<<endl;
37     else cout<<result<<endl;
38 
39 return 0;
40 }
View Code

 

posted @ 2017-05-31 22:14  BadboyQAQ  阅读(145)  评论(0编辑  收藏  举报