本文共 797 字,大约阅读时间需要 2 分钟。
题目链接:
题目大意:
两个人每个人有一个队列,每次取两人队头,然后比较,将两个放到比较大的那个人的队尾,然后判断胜负
题目分析:
直接模拟就好了
代码如下:
#include#include #include #include #include using namespace std;int n,k1,k2,a;queue q1,q2;int main ( ){ while ( ~scanf ( "%d" , &n ) ) { scanf ( "%d" , &k1 ); while ( k1-- ) { scanf ( "%d" , &a ); q1.push ( a ); } scanf ( "%d" , &k2 ); while ( k2-- ) { scanf ( "%d" , &a ); q2.push ( a ); } int ans = 0; while ( true ) { if ( q1.empty() || q2.empty() ) break; int u = q1.front() , v = q2.front(); q1.pop(); q2.pop(); if ( u > v ) { q1.push ( v ); q1.push ( u ); } else { q2.push ( u ); q2.push ( v ); } ans++; if ( ans > 1e6 ) { ans = -1; break; } } printf ( "%d" , ans ); if ( ans != -1 ) printf ( " %d\n" , q1.empty()?2:1); else puts(""); }}
转载地址:http://spvjn.baihongyu.com/