AtCoder Beginner Contest 157 比赛人数7464 与codeforces比赛冲突,遗憾没有参加实时赛,之后模拟赛,打得没劲
AtCoder Beginner Contest 157 C Guess The Number 瞎子摸象
总目录详见https://blog.csdn.net/mrcrack/article/details/104454762
在线测评地址https://atcoder.jp/contests/abc157/tasks/abc157_c
题是好题,但是表述不清,造成了瞎子摸象,让解题者去猜,造成了该题难度较大。
想不清楚各种情况,是该题最大的难度。
建议补充些信息
想不清楚各种情况:
样例2:因2位置取值应该固定,而不是有1,3可选,所以输出-1
样例3:因1位置取值不能是0,所以输出-1
为了帮组读者编码成功,提供几组测试数据
Input:
1 0
Output:
0
Input:
2 0
Output:
10
AC代码如下
#include <stdio.h>
int a[5];
int main(){
int n,m,i,s,c;
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++)a[i]=-1;
for(i=1;i<=m;i++){
scanf("%d%d",&s,&c);
if(a[s]!=-1&&a[s]!=c){//同一位上有不同数值
printf("-1\n");
return 0;
}else{
a[s]=c;
}
}
if(n>1&&a[1]==0)printf("-1\n");//至少两位数,首位是0
else if(n==1){//只有一位数
if(a[1]==-1)printf("0\n");
else printf("%d\n",a[1]);
}
else{//多位数
for(i=1;i<=n;i++)
if(i==1&&a[i]==-1)printf("1");//若对首位没有说明,那么设置为1
else if(a[i]==-1)printf("0");
else printf("%d",a[i]);
printf("\n");
}
return 0;
}