P8598 [蓝桥杯 2013 省 AB] 错误票据 题解

思路

考虑将 \(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;
}
posted @   _XOFqwq  阅读(95)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示