H 指数因子

成绩 0 开启时间 2013年02月21日 星期四 23:02
折扣 0.8 折扣时间 2013年02月28日 星期四 23:02
允许迟交 关闭时间 2013年02月28日 星期四 23:02
输入文件 publish.in 输出文件 publish.out

【题目描述】

长久以来,论文的质量与数量都被用来衡量一个研究者的科学生产力及科学影响力,引用量,即一篇论文被引用的次数,也是评价一篇论文重要性的基本指数。然而,因为这些因素是变化的,所以大学的专业委员会在评估哪个学者更优秀时会遇到麻烦。基于这个原因,H指数就应运而生,广泛用于综合上述因素来更准确地进行评价。H指数是这样定义的:

对于一个学者来说,如果他的Np篇论文中有h篇每篇都至少被引用过h次,而其它的(Np-h)篇每篇至多被引用过h次,那么他的指数为h。

换句话说,一个指数为h的学者,他发表的论文中有h篇每篇被其它人引用过至少h次,注意:H指数总是整数。据说H指数达到18者就完全有资格成为一个教授了,而若H指数达到45或更高者,就可以成为美国国家科学委员会会员。

你需要为列表中所有的学者计算其H指数。

【输入格式】

第一行为一个整数N(1<=N<=100),表示有N篇论文,接下来有N行,每行有一个字符串(字符串长度不超过20),表示论文的作者,中间没有空格,虽然通常一篇论文会有多个作者,但这里的每篇论文都只有一个作者。接下来有N行字符串,由"0"或"1"组成,如果第i行的第j个字符为"1",表示第i篇论文引用了第j篇论文,一篇论文不能引用它自己。

【输出格式】

输出的行数跟给出的作者数一样多,每一行包含一个作者姓名与他的H指数,输出列表首先以H指数降序排序,其次以姓名字典序排序(实际上,是以ASCII码顺序,所以"B"要先于"a")。

【样例输入】

4
Peter
Peter
Bob
Bob
0000
1000
1100
0100

【样例输出】

Peter 2
Bob 0