https://www.acwing.com/problem/content/description/126/
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int n;
cin >> n;
while (n --) {
int num1, num2;
string s1, s2;
cin >> num1 >> num2 >> s1;
vector<int> res, vt1;
for (auto c : s1) {
if (c >= '0' && c <= '9') vt1.push_back(c - '0');
else if (c >= 'A' && c <= 'Z') vt1.push_back(c - 'A' + 10);
else vt1.push_back(c - 'a' + 36);
}
reverse(vt1.begin(), vt1.end());
vector<int> temp;
while (vt1.size()) {
int r = 0;
for (int i = vt1.size() - 1; i >= 0; i --) {
r = r * num1 + vt1[i];
temp.push_back(r / num2);
r %= num2;
}
while (temp.size() && temp[0] == 0) temp.erase(temp.begin());
vt1 = temp;
reverse(vt1.begin(), vt1.end());
temp.clear();
res.push_back(r);
}
for (int i = res.size() - 1; i >= 0; i --) {
int digit = res[i];
if (digit >= 0 && digit <= 9) s2 += digit + '0';
else if (digit >= 10 && digit <= 35) s2 += digit - 10 + 'A';
else s2 += digit - 36 + 'a';
}
cout << num1 << " " << s1 << endl;
cout << num2 << " " << s2 << endl;
cout << endl;
}
return 0;
}