思路
考虑将 \(id\) 从小到大排序,
然后从 \(2\) 下标开始扫描一遍 \(id\) 数组,
若当前的 \(id_i - id_{i-1} > 1\),则说明当前 \(id\) 存在断号,输出 \(id_i - 1\);
若当前的 \(id_i = id_{i-1}\),则说明当前 \(id\) 存在重号,输出 \(id_i\)。
注意断号与重号需要分开计算。
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,tot;
int a[10031];
signed main(){
ios::sync_with_stdio(0);
cin>>n;
while(cin>>a[++tot]);
tot--;
sort(a+1,a+tot+1);
//for(int i=1;i<=tot;i++) cout<<a[i]<<' ';
//cout<<'\n';
for(int i=2;i<=tot;i++)
if(a[i]-a[i-1]>1) cout<<a[i]-1<<' ';
for(int i=2;i<=tot;i++)
if(a[i]==a[i-1]) cout<<a[i]<<' ';
return 0;
}
标签:AB,P8598,int,题解,tot,蓝桥,id
From: https://www.cnblogs.com/XOF-0-0/p/18050454