B. Spreadsheets

题目连接:

http://www.codeforces.com/contest/1/problem/B

Description

In the popular spreadsheets systems (for example, in Excel) the following numeration of columns is used. The first column has number A, the second — number B, etc. till column 26 that is marked by Z. Then there are two-letter numbers: column 27 has number AA, 28 — AB, column 52 is marked by AZ. After ZZ there follow three-letter numbers, etc.

The rows are marked by integer numbers starting with 1. The cell name is the concatenation of the column and the row numbers. For example, BC23 is the name for the cell that is in column 55, row 23.

Sometimes another numeration system is used: RXCY, where X and Y are integer numbers, showing the column and the row numbers respectfully. For instance, R23C55 is the cell from the previous example.

Your task is to write a program that reads the given sequence of cell coordinates and produce each item written according to the rules of another numeration system.

Input

The first line of the input contains integer number n (1 ≤ n ≤ 105), the number of coordinates in the test. Then there follow n lines, each of them contains coordinates. All the coordinates are correct, there are no cells with the column and/or the row numbers larger than 106

Output

Write n lines, each line should contain a cell coordinates in the other numeration system.

Sample Input

2

R23C55

BC23

Sample Output

BC23

R23C55

Hint

题意

表格有两种表示方法,第一种

比如R23C55,就表示第23行,55列

第二种:

比如BC23,就表示在第BC列,23行,BC是一个26进制数,A是1,Z是26,BC就表示55=2*26+3

然后给你其中一种,让你转化成另外一种

题解:

模拟题,瞎跑跑就好了……

简单模拟题,进制转换,直接看(这个数-1)%26就好了。

代码

#include<bits/stdc++.h>
using namespace std; string s;
void solve1()
{
int R=0,C=0;
int flag = 0;
for(int i=1;i<s.size();i++)
{
if(s[i]=='C')flag=1;
if(s[i]=='C')continue;
if(flag==0)R=R*10+(s[i]-'0');
else C=C*10+(s[i]-'0');
}
string ans;
while(C)
{
int p = (C-1)%26;
C=(C-1)/26;
ans+=(p+'A');
}
reverse(ans.begin(),ans.end());
cout<<ans<<R<<endl;
}
void solve2()
{
int flag = 0;
int C=0;
for(int i=0;i<s.size();i++)
{
if(s[i]<='9'&&s[i]>='0'&&flag==0)
{
flag = 1;
cout<<"R";
}
if(flag==1)cout<<s[i];
else
C=C*26+(s[i]-'A'+1);
}
cout<<"C"<<C<<endl;
}
int main()
{
int time;
scanf("%d",&time);
while(time--)
{
cin>>s;
int flag1=0,flag2=0,flag3=0;
for(int i=0;i<s.size();i++)
{
if(s[i]=='R')flag1++;
if(s[i]=='C')flag2++;
if(s[i]<='Z'&&s[i]>='A')
flag3++;
}
if(s[0]=='R'&&s[1]=='C')flag1=0;
if(flag3==2&&flag1&&flag2)
solve1();
else
solve2();
}
}

Codeforces Beta Round #1 B. Spreadsheets 模拟的更多相关文章

  1. Codeforces Beta Round #3 C. Tic-tac-toe 模拟题

    C. Tic-tac-toe 题目连接: http://www.codeforces.com/contest/3/problem/C Description Certainly, everyone i ...

  2. Codeforces Beta Round #5 B. Center Alignment 模拟题

    B. Center Alignment 题目连接: http://www.codeforces.com/contest/5/problem/B Description Almost every tex ...

  3. Codeforces Beta Round #77 (Div. 2 Only)

    Codeforces Beta Round #77 (Div. 2 Only) http://codeforces.com/contest/96 A #include<bits/stdc++.h ...

  4. Codeforces Beta Round #75 (Div. 2 Only)

    Codeforces Beta Round #75 (Div. 2 Only) http://codeforces.com/contest/92 A #include<iostream> ...

  5. Codeforces Beta Round #74 (Div. 2 Only)

    Codeforces Beta Round #74 (Div. 2 Only) http://codeforces.com/contest/90 A #include<iostream> ...

  6. Codeforces Beta Round #73 (Div. 2 Only)

    Codeforces Beta Round #73 (Div. 2 Only) http://codeforces.com/contest/88 A 模拟 #include<bits/stdc+ ...

  7. Codeforces Beta Round #72 (Div. 2 Only)

    Codeforces Beta Round #72 (Div. 2 Only) http://codeforces.com/contest/84 A #include<bits/stdc++.h ...

  8. Codeforces Beta Round #67 (Div. 2)

    Codeforces Beta Round #67 (Div. 2) http://codeforces.com/contest/75 A #include<bits/stdc++.h> ...

  9. Codeforces Beta Round #65 (Div. 2)

    Codeforces Beta Round #65 (Div. 2) http://codeforces.com/contest/71 A #include<bits/stdc++.h> ...

随机推荐

  1. 如何更新远程主机上的 Linux 内核

    如何更新远程主机上的 Linux 内核 http://blog.csdn.net/robertsong2004/article/details/47277121 转载至:http://www.tiny ...

  2. win7旗舰版64位缺失tbb.dll文件

    win7旗舰版64位缺失tbb.dll文件 https://zhidao.baidu.com/question/688589990330312804.html 到好的电脑中复制一个,黏贴到下同的路径下 ...

  3. (转)opencv 代替caffe.io.load_image

    self.net.blobs[, , self.image_resize, self.image_resize) #image = caffe.io.load_image(image_file) im ...

  4. 给mongodb设置密码权限

    昨天装了个mongodb数据库用于测试用,装好后没有密码,现在就讲讲怎么设置密码 1.首先进入C:\mongodb\bin下面运行mongod.exe启动数据库. 2.在相同目录下启动mongo.ex ...

  5. django celery异步框架

    描述:实现运维平台的异步执行与定时任务,以下简单描述了安装过程及使用.   安装django和celery pip install django pip install celery pip inst ...

  6. div随意拖动,基于jquery。

    $("#box").mousedown(function (e) { //e鼠标事件 var offset = $(this).position();//DIV在页面的位置 使用p ...

  7. nginx gzip压缩

    gzip压缩作用:将响应报⽂发送⾄客户端之前可以启⽤压缩功能,这能够有效地节约带宽,并提⾼响应⾄客户端的速度,压缩会消耗nginx的cpu性能 gzip压缩可以配置http,server和locati ...

  8. vue-music 关于基础组件 (Tab组件)

      定义在项目的基础组类别的 tab组件中,定义一个tab切换数量的数组 和一个currentIndex 当前高亮索引 的props,当前高亮(active)的类等于currentIndex === ...

  9. Codeforces 1099 B. Squares and Segments-思维(Codeforces Round #530 (Div. 2))

    B. Squares and Segments time limit per test 1 second memory limit per test 256 megabytes input stand ...

  10. hihoCoder #1870 : Jin Yong’s Wukong Ranking List-闭包传递(递归) (ACM-ICPC Asia Beijing Regional Contest 2018 Reproduction A) 2018 ICPC 北京区域赛现场赛A

    P1 : Jin Yong’s Wukong Ranking List Time Limit:1000ms Case Time Limit:1000ms Memory Limit:512MB Desc ...