您的位置:首页 > 其它

[Codeforces Round #155 (Div. 2)]A. Cards with Numbers

2013-01-18 21:22 337 查看
地址:http://codeforces.com/contest/254/problem/A

这题昨天就在想,想复杂了一些

一个5000的数组用来存数字的位数,一个400000x2的二维数组用来存答案(400000稍大了些)

读每个数第一次读入时,先将其位置存到5000数组里,第二次读入时,一起转到二维数组中,然后5000数组相应位置清零

所有数据读完后,检查5000数组,全为零则可以输出答案,否则输出-1

#include<stdio.h>

int n,a[5001],ans[400000][2];

int main()
{
int i,in,j=0,flag=0;
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);
scanf("%d",&n);
for(i=1;i<=2*n;i++)
{
scanf("%d",&in);
if(0==a[in]) a[in]=i;
else
{
ans[j][0]=a[in];
ans[j][1]=i;
j++;
a[in]=0;
}
}
for(i=1;i<=5000;i++)
{
if(a[i]!=0) {flag=1;break;}
}
if(flag) printf("-1\n");
else
{
while(j>0)
{
printf("%d %d\n",ans[j-1][0],ans[j-1][1]);
j--;
}
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: