标签:queue int 队列 水题 lag pre 注意 max 模拟
是一道水题,可以用队列+模拟来写,注意不要拿完队列中的元素!
1 #include<iostream> 2 #include<cstdio> 3 #include<queue> 4 using namespace std; 5 const int maxn=1000000+5; 6 int main() 7 { 8 int n; 9 cin>>n; 10 queue<int>a;//队列 11 queue<int>b; 12 int x,y; 13 cin>>x; 14 for(int i=0;i<x;i++) 15 { 16 int x; 17 cin>>x; 18 a.push(x); 19 } 20 cin>>y; 21 for(int i=0;i<y;i++) 22 { 23 int y; 24 cin>>y; 25 b.push(y); 26 } 27 int sum=0;//记录步数 28 bool flag=0;//判断输赢以及游戏是否结束 29 while(sum<=maxn) 30 { 31 int u=a.front();a.pop(); 32 int v=b.front();b.pop(); 33 sum++; 34 if(u>v) 35 { 36 a.push(v);//U比V大时 37 a.push(u); 38 } 39 else 40 { 41 b.push(u);//U比V小时 42 b.push(v); 43 } 44 if(a.size()==0&&b.size()==0)//游戏结束 45 break; 46 if(a.size()==0) 47 { 48 printf("%d %d\n",sum,2); 49 flag=1; 50 } 51 if(b.size()==0) 52 { 53 printf("%d %d\n",sum,1); 54 flag=1; 55 } 56 if(flag==1)break; 57 } 58 if(flag==0)printf("-1\n"); 59 return 0; 60 }
是不是很简单呢?
标签:queue int 队列 水题 lag pre 注意 max 模拟
原文地址:https://www.cnblogs.com/edenhazardhty/p/11360887.html