又是乌云明媚的一天。
[ARC042A] 掲示板
本来想用两个容器分别维护修改元素和未修改元素,但是遇到有重复操作的元素时会假。
看样例发现是把操作倒着输出,遇到重复元素就输出第一次出现的,其余先不管,用一个桶标记一下,最后一并输出。
因为元素和下标书写错误 WA 了一发。
点击查看代码
#include <bits/stdc++.h>
#define int long long
using namespace std;
inline int read()
{
int w=1,s=0;char ch=getchar();
while(!isdigit(ch)){if(ch=='-')w=-1;ch=getchar();}
while(isdigit(ch)){s=s*10+(ch-'0');ch=getchar();}
return w*s;
}
const int mod=1e9+7;
const int maxn=2e5+10;
const int inf=1e9+7;
int n,m,a[maxn];
bool f[maxn];
int tot,v[maxn];
signed main()
{
#ifdef Lydic
freopen(".in", "r", stdin);
freopen(".out", "w", stdout);
#endif
cin>>n>>m;
for(int i=1;i<=m;i++)
{
v[i]=read();
}
for(int i=m;i>=1;i--)
{
int x=v[i];
if(!f[x]){f[x]=1;cout<<x<<endl;}
}
for(int i=1;i<=n;i++)
if(!f[i])cout<<i<<endl;
return 0;
}