Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <string.h>
- #include <algorithm>
- #include <math.h>
- int r, c;
- bool is_digit(char c){
- return c >= '0' && c <= '9';
- }
- bool is_alpha(char c){
- return c >= 'A' && c <= 'Z';
- }
- int ltd(char c, int p){
- int tp = c - '0';
- while(p--)
- tp *= 10;
- return tp;
- }
- bool is_exl_format(char* s, int n){
- bool tmp = false;
- for(int i = 0; i < n; i++){
- tmp |= is_digit(s[i]);
- if(tmp && s[i] == 'C')
- return false;
- }
- return true;
- }
- void dtw(int a){
- char s[30];
- int it = 0;
- while(a){
- a--;
- s[it++] = a % 26 + 'A';
- a /= 26;
- }
- for(int i = it-1; i >= 0; --i)
- printf("%c", s[i]);
- }
- int wtd(char* os, int b, int e){
- char s[30];
- memcpy(s, os, e);
- s[e] = 0;
- return atoi(s + b);
- }
- void f1(char* s, int n){
- int e;
- for(e = 1; s[e] != 'C'; ++e){
- }
- r = atoi(s + 1);
- c = wtd(s, e+1, n);
- dtw(c);
- printf("%d\n", r);
- }
- int ff(char *s, int e){
- int a = 0;
- int p = e-1;
- for(int i = 0; i < e; ++i){
- a += (s[i] - 'A' + 1) * (int)pow(26 * 1.0, p);//
- // printf("\ns[i] - 'A' + 1 = %d||pow = %d\n", s[i] - 'A' + 1, (int)pow(26 * 1.0, p));
- p--;
- }
- return a;
- }
- void f2(char* s, int n){
- int e = 0;
- for(; is_alpha(s[e]); ++e){}
- printf("R%dC%d\n", atoi(s + e), ff(s, e));
- }
- int main(){
- /*
- freopen("input.txt", "r", stdin);
- freopen("output.txt", "w", stdout);
- */
- int n;
- int size;
- scanf("%d", &n);
- char s[30];
- while(n--){
- scanf("%s", s);
- size = strlen(s);
- if(is_exl_format(s, size)){
- f2(s, size);
- }
- else
- f1(s, size);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement