各类网站规划,牙科医院网站推广方案,硬件开发是什么,wordpress悬浮播放器源码给定一个长度为 N 的数组 A[A1,A2,⋅⋅⋅AN]#xff0c;数组中有可能有重复出现的整数。 现在小明要按以下方法将其修改为没有重复整数的数组。 小明会依次修改 A2,A3,⋅⋅⋅,AN。 当修改 Ai 时#xff0c;小明会检查 Ai 是否在 A1∼Ai−1 中出现过。 如果出现过#xff0c;…给定一个长度为 N 的数组 A[A1,A2,⋅⋅⋅AN]数组中有可能有重复出现的整数。 现在小明要按以下方法将其修改为没有重复整数的数组。 小明会依次修改 A2,A3,⋅⋅⋅,AN。 当修改 Ai 时小明会检查 Ai 是否在 A1∼Ai−1 中出现过。 如果出现过则小明会给 Ai 加上 1如果新的 Ai 仍在之前出现过小明会持续给 Ai 加 1直到 Ai 没有在 A1∼Ai−1 中出现过。 当 AN 也经过上述修改之后显然 A 数组中就没有重复的整数了。 现在给定初始的 A 数组请你计算出最终的 A 数组。
输入格式 第一行包含一个整数 N。 第二行包含 N 个整数 A1,A2,⋅⋅⋅,AN。
输出格式 输出 N 个整数依次是最终的 A1,A2,⋅⋅⋅,AN。
数据范围 1≤N≤105, 1≤Ai≤106 输入样例 5 2 1 1 3 4 输出样例 2 1 3 4 5
代码如下
#include iostream
using namespace std;
const int N 1000010;
int a[N];
int find(int x)
{if (a[x]!x) a[x] find(a[x]);return a[x];
}int main()
{int n;cinn;for (int i 1;iN;i) a[i] i;for (int i 1;in;i){int x;cinx;x find(x);couta[x] ;a[x] x1;}return 0;
}