题解

1 条题解

  • 1
    @ 2022-08-14 17:09:26

    号码牌

    特殊地,如果没有给出个数 \(n\),可以使用

    while(~scanf("%d",&x))
    

    while(cin>>x)
    

    读入。解决了这个问题,这道题也很好解决。

    #include<bits/stdc++.h>
    using namespace std;
    int x,maxn=INT_MIN,minn=INT_MAX,ans1=0,ans2=0;
    int a[10005];//注意,这里每个数的上限是 10000,所以要开 10000 及以上的桶 
    int main()
    {
        while(~scanf("%d",&x))//特殊的读入 
        {
            a[x]++;//用桶装好 
            maxn=max(maxn,x);//枚举左边界 
            minn=min(minn,x);//枚举右边界 
        }
        for(int i=minn; i<=maxn; i++)//开始判断 
        {
            if(a[i]==0)//没有出现,即第一个答案 
                ans1=i;
            if(a[i]==2)//重复出现,即第二个答案 
                ans2=i;
        }
        printf("%d %d\n",ans1,ans2);//分别输出 
        return 0;
    }
    
  • 1

信息

ID
1438
难度
2
分类
(无)
标签
递交数
3
已通过
1
通过率
33%
上传者