#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
vector<int> facto(long long int n){
vector<int> ans;
int i=1;
while(n){
ans.push_back(n%i);
n/=i;
i++;
}
reverse(ans.begin(),ans.end());
return ans;
}
int main(){
long long int n;
int t;
string s;
cin>>t;
while(t--){
cin>>s>>n;
sort(s.begin(),s.end());
vector<int> ord=facto(n);
reverse(ord.begin(),ord.end());
int j=s.size()-ord.size();
for(int i=0;i<j;i++)
ord.push_back(0);
reverse(ord.begin(),ord.end());
for(int i=0;i<ord.size();i++){
cout<<s[ord[i]];
s.erase(ord[i],1);
}
cout<<endl;
}
}
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
vector<int> facto(long long int n){
vector<int> ans;
int i=1;
while(n){
ans.push_back(n%i);
n/=i;
i++;
}
reverse(ans.begin(),ans.end());
return ans;
}
int main(){
long long int n;
int t;
string s;
cin>>t;
while(t--){
cin>>s>>n;
sort(s.begin(),s.end());
vector<int> ord=facto(n);
reverse(ord.begin(),ord.end());
int j=s.size()-ord.size();
for(int i=0;i<j;i++)
ord.push_back(0);
reverse(ord.begin(),ord.end());
for(int i=0;i<ord.size();i++){
cout<<s[ord[i]];
s.erase(ord[i],1);
}
cout<<endl;
}
}
Comments
Post a Comment