算法1
思路:通过sort排序后,如果a[i]==a[i-1]则为重号,如果a[i]>=a[i-1]+2则为断号,感觉这个题处理输入有点麻烦
C++ 代码
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<sstream>
using namespace std;
const int N=10010;
int n;
int a[N];
int main(){
int cnt;
cin>>cnt;
string line;
getline(cin,line);//忽略第一行的回车
while(cnt--){
getline(cin,line);//因为字符串里面有空格
stringstream ssin(line);//相当于sscanf
while(ssin>>a[n]) n++;//ssin替换cin,可以每次从字符串里面读东西了
}
sort(a,a+n);
int res1,res2;//分别表示断号和重号
for(int i=1;i<n;i++)
if(a[i]==a[i-1])res1=a[i];
else if(a[i]>=a[i-1]+2)res2=a[i]-1;//断号
cout<<res2<<' '<<res1<<endl;
return 0;
}