文理学院程序设计在线练习


这也叫破译?

Time Limit: 2 Second(s)    Memory Limit: 32 MB

Total Submission(s): 188   Accepted Submission(s): 36
Problem Description

NOIP吧是个很和谐的吧,一直为了OI事业而奋斗。但是,由于吧的日益壮大,各种矛盾还是避免不了。

这两天,传说中的NOIP吧官方群群主接到一封神秘而好笑的信。神秘在于信的表面有两个特别大的字——神秘(⊙﹏⊙b汗);好笑在于信的开头说,你一定猜不出这封信源自何处,结尾处署名CCF(⊙﹏⊙b汗)。

言归正传,CCF的信让老练的群主大吃一惊,觉得也没有招惹过CCF啊。信中说这封信的内容加密过了,你需要完成这封信上的任务,完成之后内容就会自然的显现了(这也叫破译?⊙﹏⊙b汗)。群主觉得这等小事何足挂齿,只是最近ACM那边很多事啊,所以交给你了。(什么?你要推脱?告诉你,群主是个愤青,impossible!!!)

信中给了n 个单词,每个单词都由小写字母构成。信的后面给了一个字母表,字母表如下:

a b c d e f g h i j k l m n o p q r s t u v w x y z
4 2 5 6 1 4 5 6 7 2 3 4 8 9 3 1 2 6 8 9 2 6 3 2 5 7

这些字母对应一个数字,暂且称作:权值。一个单词的权值定义为单词所含的字母的权值之和。你的任务是按权值降序(从大到小),(若权值相等,按字符串排序。注:两个字符串先输出长度大的,长度相同输出字典序大的).
输出前m(1<=m<=n)个单词和单词的权值。

Input

多组测试,处理到文件结束.
第一行是整数n,m,表示单词的个数和所需输出的单词的个数;其中 1<=n<=50000.
第2~n+1行,每行一个单词。单词只包含小写英文字母且长度不超过20

Output

输出包含m行。第1~m行,每行一个单词和一个权值,单词和权值之间用一个空格隔开。

Sample Input
10 10
noip
noi
ceoi
ctsc
apoi
usaco
nocow
vijos
crack
tyvj
Sample Output
ctsc 27
vijos 26
nocow 23
crack 23
usaco 22
tyvj 22
noip 20
noi 19
ceoi 16
apoi 15
Hint

建议使用scanf和printf来提高输入输出效率

Source

百度NOIP吧编程挑战赛