Advertisement
tanimahossain

WA permutation - -UVA 941

Oct 19th, 2018
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.23 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. #include<stdio.h>
  3. #include<math.h>
  4. #include<string.h>
  5. #include<stdlib.h>
  6.  
  7. using namespace std;
  8.  
  9. long long int factor[25],mark[25],l;
  10.  
  11. void fact()
  12. {
  13.     long long int p=1,i;
  14.     factor[0]=1;
  15.     for(i=1;i<=20;i++){
  16.         p=p*i;
  17.         factor[i]=p;
  18.     }
  19.     return;
  20. }
  21.  
  22. void copys()
  23. {
  24.     for(int i=0;i<l;i++)
  25.     {
  26.         mark[i]=1;
  27.     }
  28. }
  29.  
  30. int main()
  31. {
  32.     long long int i,n,num,m,p1,p2,k,j;
  33.     double d,e;
  34.     char s[50];
  35.     fact();
  36.     cin>>n;
  37.     while(n--){
  38.         scanf("%s",&s);
  39.         l=strlen(s);
  40.         m=l-1;
  41.  
  42.         sort(s,s+l);
  43.         cin>>num;
  44.         num=(num%factor[l])+1;
  45.  
  46.         copys();
  47.         for(i=0;i<l;i++){
  48.             p1=ceil((num*1.0)/factor[m]);
  49.  
  50.             p2=p1%(m+1);
  51.  
  52.             if(p2==0){
  53.                 p2=(m+1);
  54.             }
  55.             k=0;
  56.             for(j=0;j<l;j++){
  57.                 if(mark[j]==1){
  58.                     k++;
  59.                 }
  60.                 if(k==p2){
  61.                     printf("%c",s[j]);
  62.                     mark[j]=0;
  63.                     break;
  64.                 }
  65.             }
  66.             m--;
  67.         }
  68.         cout<<endl;
  69.         memset(mark,0,sizeof mark);
  70.  
  71.     }
  72.     return 0;
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement