D - Ignatius and the Princess II
给你N个整数,分别是1,2,3,。。。N。问你全排列的第M个排列为多少?
6 4 11 8
1 2 3 5 6 4 1 2 3 4 5 6 7 9 8 11 10
#include<iostream>
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<math.h>
#include<queue>
using namespace std;
int s[10000000];
int main(){
int n,m;
while(cin>>n>>m){
int flag=1;
int num=1;
for(int i=0;i<n;i++){
s[i]=num;
num++;
}
/*for(int i=0;i<n;i++){
cout<<s[i]<<endl;
}*/
int t=2;
while(next_permutation(s,s+n)){
if(t==m){
for(int i=0;i<n;i++){
if(flag==1){
cout<<s[i];
flag=0;
}
else{
cout<<' '<<s[i];
}
}
break;
}
t++;
}
cout<<endl;
}
return 0;
}