链接:
https://vjudge.net/contest/265795#problem/D
题意:
给出一个序列,问在1-n的全排列中,第一次出现当前序列时的序列是?
代码:
#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e5+10;
int a[maxn];
int vis[maxn];
queue<int> q1;
queue<int> q2;
int main()
{
int n,m;
cin>>n>>m;
for(int i = 0; i < m; i++)
{
int x = 0;
cin>>x;
q1.push(x);
vis[x] = 1;
}
for(int i = 1; i <= n; i++)
{
if(!vis[i])
q2.push(i);
}
for(int i = 0 ; i < n; i++)
{
if(q1.empty())
{
cout<<q2.front()<<endl;
q2.pop();
}
else if(q2.empty())
{
cout<<q1.front()<<endl;
q1.pop();
}
else if(q1.front() < q2.front())
{
cout<<q1.front()<<endl;
q1.pop();
}
else
{
cout<<q2.front()<<endl;
q2.pop();
}
}
return 0;
}