#P3094. Quicksum

Quicksum

问题描述

校验和是一种算法,它扫描数据包并返回一个数字。其核心思想是,如果数据包发生改变,校验和也会随之变化。因此,校验和常用于检测传输错误、验证文档内容,以及其他需要检测数据异常变动的场景。

本题要求实现一种名为 QuicksumQuicksum 的校验和算法。QuicksumQuicksum 数据包仅允许大写字母和空格,且必须以大写字母开头和结尾。除此之外,空格和字母可以任意组合出现,包括连续的空格。

QuicksumQuicksum 的计算方法是:将数据包中每个字符的位置(从11开始)乘以该字符的对应值,再将所有乘积相加。其中,空格的值是00,字母的值是其字母表中的顺序(即A=1A=1B=2B=2,……,Z=26Z=26)。以下是数据包 "ACMACM" 和 "MIDCENTRALMID CENTRAL" 的 QuicksumQuicksum 计算示例:

  ACM: 1*1 + 2*3 +3*13= 46

MID CENTRAL:  1*13 + 2*9 + 3*4 + 4*0 + 5*3 + 6*5 +7*14 + 8*20 + 9*18 + 10*1 + 11*12 = 650

输入格式

输入包含一个或多个数据包,每行一个数据包,以单独的一行 # 表示输入结束。每个数据包满足以下条件:不以空格开头或结尾;长度在 11255255 个字符之间;仅包含大写字母和空格。


输出格式

对于每个数据包,输出其 QuicksumQuicksum 值,每行一个结果。


输入样例1

ACM
MID CENTRAL
REGIONAL PROGRAMMING CONTEST
ACN
A C M
ABC
BBC
#

输出样例1

46
650
4690
49
75
14
15

来源

2006年美国中北部地区