这是我的一个无中生友的智将写法, 我知道可以while(cin>>x) 但是这个哪里错了
#include<bits/stdc++.h>
using namespace std;
const int n=1e6+10;
int a[n],Mn,Mx;
int main(){
int N; cin>>N; cin.ignore();
string str;
for(int k=0;k<N;++k){
getline(cin,str); str+=" ";
int L=str.length();
int i=0,j=0;
while((str[j]<'0' || str[j]>'9'))
j++;
i=j;
//cout<<str<<"\n";
//i用来标记一个数开始的起点位置,j用来标记一个数结束的位置
for( ;i<L && j<L; ){
if((str[j]<'0' || str[j]>'9')){
int temp=atoi(str.substr(i,j-i+1).c_str());
///cout<<temp<<"-----------------\n";
a[temp]++;
Mx=max(Mx,temp);
Mn=min(Mn,temp);
//找到下一个数字的开始位置
while(j<L && (str[j]<'0' || str[j]>'9'))
j++;
i=j;
}
else{
j++;
}
}
}
// for(int i=0;i<20;++i) cout<<a[i]<<"---"<<i<<endl;
int ans1=0,ans2=0;
for(int i=Mn;i<=Mx;++i){
if(a[i]==0) ans1=i;
if(a[i]==2) ans2=i;
if(ans1&&ans2) break;
}
//cout<<Mn<<" "<<Mx<<"\n";
cout<<ans1<<" "<<ans2<<endl;
}