P8686 [蓝桥杯 2019 省 A] 修改数组 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
cpp
#include<bits/stdc++.h>
using namespace std;
signed main()
{
int n;cin>>n;
set<int>st;
for(int i=1;i<=1e6;i++)
{
st.insert(i);
}
for(int i=1;i<=n;i++)
{
int x;
cin>>x;
auto it=st.lower_bound(x);//lower------bound返回的是大于等于的第一个值
st.erase(*it);
cout<<*it<<' ';
}
return 0;
}