题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1027
解析:
使用STL中的next_permutation函数生成全排列。
代码:
/*
ID:muller8
Name: 1027 Ignatius and the Princess II
Reference: 全排列
*/
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
#include <vector>
using namespace std;
#define MAXN 1005
#define INF 1e9
int a[MAXN];
int main(){
int m, n;
while(~scanf("%d%d", &m, &n)){
for(int i=0; i<m; ++i)
a[i] = i+1;
int tmp = 0;
do{
tmp ++;
if(tmp == n){
printf("%d", a[0]);
for(int i=1; i<m; ++i)
printf(" %d", a[i]);
printf("\n");
break;
}
}while(next_permutation(a,a+m));
}
return 0;
}