某次信息学比赛总共有10000000000000000道题目,编号1至10000000000000000。
实在是太多了,估计一辈子都做不完。
给这些题目命名是一件很头疼的事情,经过深入思考之后,制定了如下的命名规则:
按照题目的编号从小到大,各道题目的名称依次是:
A,B,...,Z,
AA, AB, AC,...ZZ,
AAA, AAB, AAC,...ZZZ
AAAA, AAAB, AAAC,...ZZZZ
......
也就是先用完长度是1的大写字母构成的字符串,
再使用长度是2的大写字母构成的字符串,
再使用长度是3的大写字母构成的字符串,
......
长度相同的字符串,是按照字典序的顺序命名的。
现在的任务是:给出某道题目的字符串名称,输出该道题目的序号。
输入格式
一个字符串S,表示题目的字符串名称。
输出格式
一个整数,表示题目的序号。
输入/输出例子1
输入:
AB
输出:
28
输入/输出例子2
输入:
C
输出:
3
输入/输出例子3
输入:
BRUTMHYHIIZP
输出:
10000000000000000
代码:
#include<bits/stdc++.h>
using namespace std;
string s;
long long a;
int main(){
cin>>s;
for(int i=0;i<s.size();i++)
{
a=a*26+int(s[i]-64);
}
printf("%lld",a);
return 0;
}