这题是一题简单题
模拟就行了
代码:
#include<bits/stdc++.h>
using namespace std;
int n,m;
int a[100010];
int b[100010];
bool vis[100010];
int cnt;
int main()
{
scanf("%d%d",&n,&m);
for(int i=1;i<=m;i++)
scanf("%d",a+i),vis[a[i]]=true;
for(int i=1;i<=n;i++)
{
if(vis[i])
continue;
b[++cnt]=i;
}
int x=1,y=1;
for(int i=1;i<=n;i++)
{
if(x>m)
printf("%d\n",b[y++]);
else if(y>cnt)
printf("%d\n",a[x++]);
else
{
if(a[x]<b[y])
printf("%d\n",a[x++]);
else
printf("%d\n",b[y++]);
}
}
return 0;
}
来源:zr