【欧拉计划】22. Names scores

【思路】从文件读入所有名字,然后模拟。难点在于读入的方法。当然也可以另编写一个程序,将所有名字每几个就换一次行,然后把表存在最终程序里(详见 Problem 42):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include<bits/stdc++.h>
using namespace std;
string s[6001],t;
int n,ans;
bool read(string &s)
{
char ch=getchar();
if(ch==EOF)return false;
while(ch<'A'||ch>'Z')
{
ch=getchar();
if(ch==EOF)return false;
}
s=ch;
while(true)
{
ch=getchar();
if(ch<'A'||ch>'Z')break;
s+=ch;
}
return true;
}
int main()
{
freopen("p022_names.txt","r",stdin);
while(read(t))s[++n]=t;
sort(s+1,s+n+1);
for(int i=1;i<=n;++i)
{
int x=0;
for(int j=0;s[i][j];++j)x+=s[i][j]-'A'+1;
ans+=x*i;
}
printf("%d",ans);
return 0;
}

【欧拉计划】22. Names scores

https://hensier.github.io/projecteuler/22/

作者

hensier

发布于

2022-05-01

更新于

2023-01-02

许可协议

评论