1027 Ignatius and the Princess II(next_permutation的应用)

#include<stdio.h>
#include<algorithm>
using namespace std;
int a[10005];
int main(){
	int n,k,m,i;
	while(~scanf("%d%d",&n,&k)){
		m=1;
		for(i=0;i<=n+1;i++)
			a[i]=i+1;
		while(next_permutation(a,a+n)){
			m++;
			if(m==k){
				break;
			}
			
		}
		for(i=0;i<n;i++){
			if(i!=n-1)
				printf("%d ",a[i]);
			else printf("%d\n",a[n-1]);
		}
	}
	return 0;
}
关于next_permutation,这里有一个原理讲的很清楚的,可以看看何为下一个排列以及实现细节

猜你喜欢

转载自blog.csdn.net/qq_40061421/article/details/81009627