这道题目很简单,输入行数以及给出若干个整数,从小到大寻找出中断的ID以及重复的ID,但是难点在于如何接受没有明确数量的整数,这里我们采用while(cin >> arr[cnt++])来接受数,如果输入一个整数,cin将返回1,win系统按ctrl + z来结束输入,然后进行排序方便进行答案寻找,按照题目要求进行操作即可
上代码
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
const int N = 1e5 + 5;
int arr[N];
int main(void)
{
int n; cin >> n;
int cnt = 0;
while (cin >> arr[cnt++]);
int ans1, ans2;//断号和重号
sort(arr, arr + cnt);//进行排序
for (int i = 0; i < cnt; i++) {
if (arr[i + 1] - arr[i] == 2) ans1 = arr[i] + 1;//如果后一个ID减去前一个ID等于二,说明断号就在这里
if (arr[i] == arr[i + 1]) ans2 = arr[i];//如果前一个等于后一个,说明这里重号
}
cout << ans1 << ' ' << ans2 << endl;;
return 0;
}