Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- #include<stdio.h>
- #include<math.h>
- #include<string.h>
- #include<stdlib.h>
- using namespace std;
- long long int factor[25],mark[25],l;
- void fact()
- {
- long long int p=1,i;
- factor[0]=1;
- for(i=1;i<=20;i++){
- p=p*i;
- factor[i]=p;
- }
- return;
- }
- void copys()
- {
- for(int i=0;i<l;i++)
- {
- mark[i]=1;
- }
- }
- int main()
- {
- long long int i,n,num,m,p1,p2,k,j;
- double d,e;
- char s[50];
- fact();
- cin>>n;
- while(n--){
- scanf("%s",&s);
- l=strlen(s);
- m=l-1;
- sort(s,s+l);
- cin>>num;
- num=(num%factor[l])+1;
- copys();
- for(i=0;i<l;i++){
- p1=ceil((num*1.0)/factor[m]);
- p2=p1%(m+1);
- if(p2==0){
- p2=(m+1);
- }
- k=0;
- for(j=0;j<l;j++){
- if(mark[j]==1){
- k++;
- }
- if(k==p2){
- printf("%c",s[j]);
- mark[j]=0;
- break;
- }
- }
- m--;
- }
- cout<<endl;
- memset(mark,0,sizeof mark);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement