解题思路:
#include <iostream> #include <queue> using namespace std; int n; int all[100010]; int vis[100010]; int main() { cin >> n; for(int i = 1;i <= n;i ++) { queue <int > q; int x; cin >> x; while(vis[x]) { q.push(x); x = vis[x] + 1; } while(!q.empty()) { int b; b = q.front(); q.pop(); vis[b] = x; } vis[x] = x; all[i] = x; } for(int i = 1;i <= n;i ++) { cout << all[i] << " "; } return 0; }
0.0分
7 人评分
C语言程序设计教程(第三版)课后习题8.9 (C语言代码)浏览:1763 |
C二级辅导-等差数列 (C语言代码)浏览:628 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:1045 |
C二级辅导-计负均正 (C语言代码)浏览:652 |
震宇大神的杀毒软件 (C语言代码)浏览:1348 |
简单的a+b (C语言代码)浏览:783 |
哥德巴赫曾猜测 (C语言代码)浏览:1148 |
回文串 (C语言代码)浏览:3095 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:593 |
C语言程序设计教程(第三版)课后习题8.5 (C语言代码)浏览:600 |