思路
1.因为cin读取到换行时结束,但仍“丢弃”了换行留在原地,所以我们可以通过cin.get()函数来检测换行问题
2.通过桶排序,如果数组值为0,则为断号,如果为2,则数组值为重号
代码
#include<iostream>
#include<cstdio>
#include<string>
#include<algorithm>
using namespace std;
int b[100010];
int n;
int d,c;
int main()
{
cin>>n;
int tp;
int maxx=-1,minn=0x3f3f3f;
while(n--)
{
while(cin>>tp)
{
if(tp<minn)
minn=tp;
else if(tp>maxx)
maxx=tp;
b[tp]++;
if(cin.get()=='\n') break;
}
}
for(int i=minn;i<=maxx;i++)
{
if(b[i]==0)
{
d=i;
continue;
}
if(b[i]==2)
{
c=i;
continue;
}
}
cout<<d<<" "<<c<<endl;
cout<<b[0]<<endl;
return 0;
}