new file: P10462.cpp
This commit is contained in:
+63
@@ -0,0 +1,63 @@
|
|||||||
|
// 124
|
||||||
|
#include <bits/stdc++.h>
|
||||||
|
using namespace std;
|
||||||
|
#define int long long
|
||||||
|
int t;
|
||||||
|
int to_num(char c)
|
||||||
|
{
|
||||||
|
if ('0' <= c && c <= '9')
|
||||||
|
return c - '0';
|
||||||
|
else if ('A' <= c && c <= 'Z')
|
||||||
|
return c - 'A' + 10;
|
||||||
|
else
|
||||||
|
return c - 'a' + 36;
|
||||||
|
}
|
||||||
|
char to_char(int i)
|
||||||
|
{
|
||||||
|
if (0 <= i && i <= 9)
|
||||||
|
return i + '0';
|
||||||
|
else if (10 <= i && i <= 35)
|
||||||
|
return i - 10 + 'A';
|
||||||
|
else
|
||||||
|
return i - 36 + 'a';
|
||||||
|
}
|
||||||
|
void conv(int inbase, int outbase, string s)
|
||||||
|
{
|
||||||
|
vector<int> n(s.size(), 0), r;
|
||||||
|
for (int i = 0; i < s.size(); ++i)
|
||||||
|
n[i] = to_num(s[i]);
|
||||||
|
while (n.size())
|
||||||
|
{
|
||||||
|
vector<int> e(n.size(), 0);
|
||||||
|
int yy = 0;
|
||||||
|
for (int i = 0; i < n.size(); ++i)
|
||||||
|
{
|
||||||
|
int c = n[i] + yy * inbase;
|
||||||
|
e[i] = c / outbase, yy = c % outbase;
|
||||||
|
}
|
||||||
|
n = e;
|
||||||
|
r.push_back(yy);
|
||||||
|
while (!n.empty() && n[0] == 0)
|
||||||
|
n.erase(n.begin());
|
||||||
|
}
|
||||||
|
reverse(r.begin(), r.end());
|
||||||
|
printf("%d ", inbase);
|
||||||
|
cout << s << '\n';
|
||||||
|
printf("%d ", outbase);
|
||||||
|
for (int i : r)
|
||||||
|
putchar(to_char(i));
|
||||||
|
puts("\n");
|
||||||
|
}
|
||||||
|
signed main()
|
||||||
|
{
|
||||||
|
scanf("%lld", &t);
|
||||||
|
while (t--)
|
||||||
|
{
|
||||||
|
int in, out;
|
||||||
|
scanf("%lld%lld", &in, &out);
|
||||||
|
string inn;
|
||||||
|
cin >> inn;
|
||||||
|
conv(in, out, inn);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user