Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ll f[MX+1]={1};
- int C[26],X;
- void nth(ll K,char*o,char*s){
- if(!X++)FT(1,MX+1)f[k]=f[k-1]*k;
- ll L(strlen(s)),X(f[L]),T,l(0);
- CL(C,o[L]=0);
- F(L)++C[s[i]-'a'];
- F(26)X/=f[C[i]];
- if(K>X){*o=0;return;};
- F(L)FF(26)if(C[j]){
- --C[j];
- T=f[L-i-1];
- F(26)T/=f[C[i]];
- if(K<=T){o[l++]='a'+j;break;}
- ++C[j],K-=T;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement