感觉好像没什么问题,但是RE了,怎么回事阿
(求调
#include <bits/stdc++.h>
using namespace std;
const int N=1e6+5;
int a[N],t[N];
int n,m;
void work()
{
int mex=0;
for (int i=0;i<=n;i++) t[i]=0;
for (int i=1;i<=n;i++)
{
if (a[i]<=n) t[a[i]]++;
}
for (int i=0;i<=n;i++)
{
if (t[i]==0)
{
mex=i;
break;
}
}
for (int i=1;i<=n;i++)
{
if (t[a[i]]>1||a[i]>mex) a[i]=mex;
}
}
void solve()
{
work();
if (m!=1)
{
work();
if (m%2==1) work();
}
}
int main()
{
ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
int t;
cin>>t;
while (t--)
{
cin>>n>>m;
for (int i=1;i<=n;i++) cin>>a[i];
solve();
for (int i=1;i<=n;i++) cout<<a[i]<<" ";
cout<<endl;
}
return 0;
}