#include <iostream>
#include <cstring>
#include <algorithm>
#include <unordered_map>
#include <unordered_set>
#include <queue>
#include <vector>
#include <array>
#include <cmath>
#define x first
#define y second
using namespace std;
typedef long long LL;
typedef pair<int , int> PII;
const int N = 100010;
string s;
string str = " ABCDEFGHIJKLMNOPQRSTUVWXYZ";
void solve1() { // excell -> RC
int num1 = 0 , num2 = 0;
for (int i = 0 ; i < s.size() ; i ++ ) {
if (isdigit(s[i])) {
num2 = num2 * 10 + s[i] - '0';
}
else num1 = num1 * 26 + s[i] - 'A' + 1;
}
printf("R%dC%d\n" , num2 , num1);
}
//void solve2() { // RC -> excell
// int num1 = 0;
// int num2 = 0;
// for (int i = 0 ; i < s.size() ; i ++ ) {
// if (s[i] == 'R') {
// i ++ ;
// while (s[i] != 'C') {
// num2 = num2 * 10 + s[i] - '0';
// i ++ ;
// }
// i -- ;
// }
// if (s[i] == 'C') {
// i ++ ;
// while (i < s.size()) {
// num1 = num1 * 10 + s[i] - '0';
// i ++ ;
// }
// i -- ;
// }
// }
// //cout << num1 << ' ' << num2 << endl;
// string snum1;
// while (num1) {
// int tmp = num1 % 26;
// if (tmp == 0) tmp = 26 , num1 -= 26;
// snum1 += str[tmp];
// num1 /= 26;
// }
// reverse(snum1.begin() , snum1.end());
// cout << snum1 << num2 << endl;
//}
void solve2() {
int row = 0 , col = 0;
int r = s.find('R') , c = s.find('C');
for (int i = r + 1 ; i < c ; i ++ )
row = row * 10 + s[i] - '0';
for (int i = c + 1 ; i < s.size() ; i ++ )
col = col * 10 + s[i] - '0';
string ans;
while (col) {
int tmp = col % 26;
if (tmp == 0) tmp = 26 , col -= 26;
ans += str[tmp];
col /= 26;
}
reverse(ans.begin() , ans.end());
cout << ans << row << endl;
}
inline void solve() {
bool flag = false;
cin >> s;
for (int i = 0 ; i < s.size() ; i ++ ) {
if (isdigit(s[i])) {
flag = true; // excell -> RC
for (; i < s.size() ; i ++ )
if (!isdigit(s[i])) {
flag = false; // RC -> excell
}
}
}
if (flag) solve1();
else solve2();
}
int main() {
//freopen("../input.txt" , "r" , stdin);
int T;
cin >> T;
while (T -- ) solve();
return 0;
}
题目不难但是细节特别多,wa好多次
难点1 : 怎么区分excell 和RC : excell出现过数字之后就不会出现字母
难度2 : 当tmp == 0 的时候需要特判并将col -= 26这是因为没有可以代表0的字母(之前忘了特判卡了好久)