30分求助!
查看原帖
30分求助!
515833
tang_mx楼主2023/7/23 22:20

实在改不出来了,求大佬查错QAQ

#include<iostream>
#include<cstdio>
#include<cstdlib>

using namespace std;

int n,m,a[10100],b[10100],cnt,flagg;
bool flag[10100];

void dfs(int x){
	if(flagg)exit(0);
	if(x==n+1){
		cnt++;
		if(cnt==m+1){
			for(int j=1;j<=n;j++)
			printf("%d ",b[j]);
			flagg++;
		}
		return ;
	}
	for(int i=1;i<=n;i++){
		if(!flag)i=a[x];
		if(!flag[a[i]]){
			b[x]=a[i];flag[a[i]]=1;
			dfs(x+1);
			flag[a[i]]=0;
		}
	}
}

int main(){
//	freopen("P1088_2.in","r",stdin);
//	freopen("ans.out","w",stdout);
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++)scanf("%d",&a[i]);
	dfs(1);
	return 0;
}

2023/7/23 22:20
加载中...