
开数组 读入数据
记录最小值和最大值
每次读入x;
让a[x]++;
从最小值开始 向上扫 当扫到a[x]==0时候为断号
扫到a[x]>1为重号;
该题的小技巧
未知长度的数据的读入方式
1.首先在头文件敲上
#include<sstream>
#include<string>
#include<cstring>
2.
初始化 一个字符串line
string line ;
3.先敲一个 getline(cin,line); 忽略掉第一行回车
int T;
cin>>T;
while(T--){
          getline(cin,line);
stringstream ssin(line);
int x;
        while(ssin>>x){
         //逐个读入处理                
}
}
完整代码
#include<iostream>
 #include<cstdio>
 #include<cstring>
 #include<algorithm>
 #include <sstream>
 #include<string>
 using namespace std;
 const int N=1e5+10;
 int i=0;
 int cnt=0;
 int a[N];
int main(){
     int cnt;
     cin >> cnt;
     string line;
     int minn=1e7,maxx=-1;
     getline(cin, line); // 忽略掉第一行的回车
     while (cnt -- )
     {
         getline(cin, line);
         stringstream ssin(line);
         int x;
         while (ssin >> x) {
             a[x]++;
             maxx=max(maxx,x);
             minn=min(minn,x);
         } 
         
     }
     int n,m;
     for(int i=minn;i<=maxx;i++){
         if(a[i]>1){
             n=i;
         }
         if(a[i]==0){
             m=i;
         }
         //cout <<i<<' '<<a[i]<<endl;
     }
     cout<<m<<' '<<n;
     
     return 0;
 }