20分
剩下点TLE
题解区next_permutation算法不会
求优化
求改
感谢dalao
/*思路:
深搜-->枚举所有可能性
排序-->sort型
循环-->枚举
找到-->加加数*/
#include<bits/stdc++.h>
using namespace std;
long long a[10005],n,m,cnt,tel,an,flag=-2e9;
long long plan[10005];
bool p[10005],f=false;
void search(long long step)
{
if(f==true)
return;
if(step==n+1)
{
for(long long i=1;i<=n;i++)
{
if(plan[i]!=a[i])
break;
if(i==n)
flag=0;
}
flag++;
if(flag==m+1)
{
for(long long i=1;i<=n;i++)
{
cout<<plan[i];
if(i!=n)
cout<<" ";
}
f=true;
}
return;
}
for(long long i=1;i<=n;i++)
{
if(p[i]==true)
continue;
plan[step]=i;
p[i]=true;
search(step+1);
p[i]=false;
}
}
int main(){
cin>>n;
cin>>m;
for(long long i=1;i<=n;i++)
{
cin>>a[i];
}
search(1);
return 0;
}