📄 1930.cpp
字号:
#include <cstdio>
#include <iostream>
using namespace std;
string pp;
char letter[30];
int main()
{
__int64 test, n, i, a[5], b[5], c[5], d[5];
for (i = 1; i < 27; i++)
{
letter[i] = i + 'A' - 1;
}
letter[27] = ' ';
scanf("%I64d", &test);
while (test--)
{
scanf("%I64d", &n);
scanf("%I64d %I64d %I64d %I64d", &a[1], &b[1], &c[1], &d[1]);
__int64 m = a[1] * b[1] * c[1] * d[1];
__int64 x = m / a[1];
a[2] = x;
while (a[2] % a[1] != 1)
{
a[2] += x;
}
x = m / b[1];
b[2] = x;
while (b[2] % b[1] != 1)
{
b[2] += x;
}
x = m / c[1];
c[2] = x;
while (c[2] % c[1] != 1)
{
c[2] += x;
}
x = m / d[1];
d[2] = x;
while (d[2] % d[1] != 1)
{
d[2] += x;
}
pp.erase();
while (n--)
{
__int64 num, temp, max, mem;
char aa, bb, cc;
scanf("%I64d", &num);
temp = m;
d[3] = num % 100;
num /= 100;
c[3] = num % 100;
num /= 100;
b[3] = num % 100;
num /= 100;
a[3] = num;
max = a[2] * a[3] + b[2] * b[3] + c[2] * c[3] + d[2] * d[3];
while (max > 0)
{
mem = max;
max -= temp;
}
max = mem;
aa = max % 100;
max /= 100;
bb = max % 100;
max /= 100;
cc = max;
pp += letter[cc];
pp += letter[bb];
pp += letter[aa];
}
string::reverse_iterator point;
for (point = pp.rbegin(); point != pp.rend(); point++)
{
if (*point != ' ')
{
break;
}
*point = '\0';
}
printf("%s\n", pp.data());
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -