题意:求1-n的按升序规则的第M个排列,如1243是N=4的第2个排列,1324是第3个,即第M小序列
Sample Input
6 4 11 8
Sample Output
1 2 3 5 6 4 1 2 3 4 5 6 7 9 8 11 10
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int maxn=1000+10;
int a[maxn];
int main()
{
int i,j,n,m;
while(cin>>n>>m) {
for(i=1;i<=n;i++) a[i-1]=i;
do
{
if(--m==0) break;
}while(next_permutation(a,a+n));
for(i=0;i<n;i++) {
if(i) cout<<" ";
cout<<a[i];
}
cout<<endl;
}
return 0;
}