Codeforces Beta Round #1 B. Spreadsheets 模拟
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 模拟的更多相关文章
- Codeforces Beta Round #3 C. Tic-tac-toe 模拟题
C. Tic-tac-toe 题目连接: http://www.codeforces.com/contest/3/problem/C Description Certainly, everyone i ...
- Codeforces Beta Round #5 B. Center Alignment 模拟题
B. Center Alignment 题目连接: http://www.codeforces.com/contest/5/problem/B Description Almost every tex ...
- Codeforces Beta Round #77 (Div. 2 Only)
Codeforces Beta Round #77 (Div. 2 Only) http://codeforces.com/contest/96 A #include<bits/stdc++.h ...
- Codeforces Beta Round #75 (Div. 2 Only)
Codeforces Beta Round #75 (Div. 2 Only) http://codeforces.com/contest/92 A #include<iostream> ...
- Codeforces Beta Round #74 (Div. 2 Only)
Codeforces Beta Round #74 (Div. 2 Only) http://codeforces.com/contest/90 A #include<iostream> ...
- Codeforces Beta Round #73 (Div. 2 Only)
Codeforces Beta Round #73 (Div. 2 Only) http://codeforces.com/contest/88 A 模拟 #include<bits/stdc+ ...
- Codeforces Beta Round #72 (Div. 2 Only)
Codeforces Beta Round #72 (Div. 2 Only) http://codeforces.com/contest/84 A #include<bits/stdc++.h ...
- Codeforces Beta Round #67 (Div. 2)
Codeforces Beta Round #67 (Div. 2) http://codeforces.com/contest/75 A #include<bits/stdc++.h> ...
- Codeforces Beta Round #65 (Div. 2)
Codeforces Beta Round #65 (Div. 2) http://codeforces.com/contest/71 A #include<bits/stdc++.h> ...
随机推荐
- Caffe学习笔记2
Caffe学习笔记2-用一个预训练模型提取特征 本文为原创作品,未经本人同意,禁止转载,禁止用于商业用途!本人对博客使用拥有最终解释权 欢迎关注我的博客:http://blog.csdn.net/hi ...
- linux dpm机制分析(上)【转】
转自:http://blog.csdn.net/lixiaojie1012/article/details/23707681 1 DPM介绍 1.1 Dpm: 设备电源管理, ...
- 【uva11248】网络扩容
网络流裸题. 求完最大流之后保留残余容量信息,依次将已经加入最小割的弧变成c再跑,记录下即可. #include<bits/stdc++.h> #define N 20005 #defin ...
- JSP(3) - 9个JSP内置对象 - 小易Java笔记
1.9个JSP内置对象 内置对象引用名称 对应的类型 request HttpServletRequest response HttpServletResponse config Servle ...
- JVM对象分配和GC分布【JVM】
最近在学习java基础结构,刚好学到了jvm,总结了以下并可以结合思维导图认识以下Jvm的对象: 栈:什么是栈? 先说一下栈的数据结构吧,栈它是一种先进后出的数据结构(FILO),跟队列刚好相反(先进 ...
- echo常用操作
echo -n 不换行输出 [root@C ~]# echo -n "peter" ; echo "linux" peterlinux echo -e 输出转义 ...
- debian下没有公钥解决办法
debian下没有公钥解决办法 执行命令:apt-get update 出现如下错误 正在读取软件包列表... 完成 W: 以下 ID 的密钥没有可用的公钥: 8B48AD6246925 ...
- [PAT] 1143 Lowest Common Ancestor(30 分)
1143 Lowest Common Ancestor(30 分)The lowest common ancestor (LCA) of two nodes U and V in a tree is ...
- transition结合:after,:before实现动画
div代码 <div class='div'> hover </div> css代码 .div{ width:200px; height:100px; line-height: ...
- [设计模式-行为型]模板方法模式(Template Method)
一句话 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中. 概括