#include <stdio.h>
int fac[] = {1,1,2,6,24,120,720,5040,40320,362880,3628800,39916800};
int Cantor(int n,char* s)
{
int ret = 0;
for(int i=0;i<n;i++)
{
int cnt = 0;
for(int j=i+1;j<n;j++)
if(s[j] < s[i])
++cnt;
ret += cnt * fac[n-1-i];
}
return ret;
}
void rCantor(int n,int nth,char *s)
{
int a[12];
for(int i=0;i<n;i++)
a[i] = i;
for(int i=0;i<n;i++)
{
int k = nth / fac[n-1-i];
nth = nth % fac[n-1-i];
s[i] = a[k] + 'a';
for(int j=k;j<n-1;j++)
a[j] = a[j+1];
}
s[n] = '\0';
}