P8598 [蓝桥杯 2013 省 AB] 错误票据
题目传送门
思路:
比较水的模拟,每次输入一个数
代码:
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,x,a[100005],ans1,ans2;
signed main(){
cin>>n;
while(cin>>x)a[x]++;
for(int i=1;i<=10004;i++){
if(a[i-1]&&a[i+1]&&!a[i])ans1=i;
if(a[i]>1)ans2=i;
if(ans1&&ans2)break;
}
cout<<ans1<<" "<<ans2<<endl;
return 0;
}
代码中添加了一些小优化,如果断号和重号都已经判定出来了,就可以直接跳出循环。