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; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】