芒果和冰沙在玩排火车。
游戏的规则是:两人各有N张牌,轮流出牌,每次一个人把牌叠在上一次出的牌的上
方,如果这时发现当前的牌与前面的牌有重复,那么这之间的牌就都归出牌人了,收回去
的牌不会再被打出。芒果先出牌。请你计算一下第一轮下来芒果和冰沙获得的牌数。
★数据输入
标准输入输出。
每部分开头是一个整数N(1 <= N <= 50000),表示两人手上各有的牌数。接下来有2
行,给出芒果和冰沙牌得情况。首先给出的芒果牌,有N个整数,第i个整数pi(1 <= pi <=
100000)表示芒果第i次出的牌的牌面。其次给出冰沙的牌,格式类似。
★数据输出对于每组测试数据,输出芒果和冰沙第一轮过后获得的牌数。
输入示例输出示例
4
1 2 3 4
MG:0 BS:8
1 2 3 4
#include<>
#define n 50000
long a[n],b[n],c[2*n];
long MG=0,BS=0;
long insert(long int i,long x,int q)
{
long p;
c[i]=x;
for(p=0;p<i;p++)
{
if(c[p]==c[i])
{
if(q==1){MG+=i-p+1;break;}
else{BS+=i-p+1;break;}
}
}
return p==i?i+1:p;
}
void main()
{
long i,j,k,N,q;
scanf("%d",&N);
for(i=0;i<N;i++)
scanf("%d",&a[i]);
for(i=0;i<N;i++)
scanf("%d",&b[i]);
i=0,j=0,k=0;
while(k<N)
{
q=1;
i=insert(i,a[j],q);
j++;
q=0;
i=insert(i,b[k],q);
k++;
}
printf("MG:%d BS:%d\n",MG,BS);
}
排火车 来自淘豆网m.daumloan.com转载请标明出处.