怎么说呢?我一开始以为是一个搜索。。。。怎么想怎么想找不到搜索状态。。。。。好吧,因为在搜索专题,然后无耻的看了题解。。队列模拟。。。
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<queue>
using namespace std;
const int N = 1e5 + 10;
queue<int> p , q;
int main()
{
int n , m , a , t;
scanf("%d",&t);
scanf("%d",&n);
for(int i = 0 ; i < n ; i++){
scanf("%d",&a);
p.push(a);
}
scanf("%d",&m);
for(int i = 0 ; i < m ; i++){
scanf("%d",&a);
q.push(a);
}
int ans = 0;
while(!q.empty() && !p.empty()){
int va , vb;
va = p.front();
vb = q.front();
p.pop();
q.pop();
// printf("va = %d vb = %d",va,vb);
if(va > vb){
p.push(vb);
p.push(va);
}
else{
q.push(va);
q.push(vb);
}
ans++;
if(ans > N) break;
}
if(p.empty() ||q.empty()){
if(!p.empty()) printf("%d 1\n",ans);
else printf("%d 2\n",ans);
}
else printf("-1\n");
return 0;
}