30fen
查看原帖
30fen
1342927
binyage楼主2024/10/12 19:17
#include<bits/stdc++.h>
using namespace std;
int a[10001],n,m,cnt;
bool b[10001],f=0 ;
void dfs(int step)
{
	if(f)
	{
		return;
	}
	if(step>n)
	{
		cnt++;
		if(cnt==m+1)
		{
			for(int i=1;i<=n;i++)
			{
				cout<<a[i]<<" ";
			}
		}
		return;
	}
	for(int i=1;i<=n;i++)
	{
		if(cnt==0)
		{
			i=a[step];
		}
		if(!b[i])
		{
			b[i]=1;
			a[step]=i;
			dfs(step+1);
			b[i]=0;
		}
	}
}
int main()
{
	cin>>n>>m;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
	}
	dfs(1);
	return 0;
}
2024/10/12 19:17
加载中...