1038 统计同成绩学生(20)(20 分)
本题要求读入N名学生的成绩,将获得某一给定分数的学生人数输出。
输入格式:
输入在第1行给出不超过10^5^的正整数N,即学生总人数。随后1行给出N名学生的百分制整数成绩,中间以空格分隔。最后1行给出要查询的分数个数K(不超过N的正整数),随后是K个分数,中间以空格分隔。
输出格式:
在一行中按查询顺序给出得分等于指定分数的学生人数,中间以空格分隔,但行末不得有多余空格。
输入样例:
10
60 75 90 55 75 99 82 90 75 50
3 75 90 88
输出样例:
3 2 0
作者: CHEN, Yue
单位: PAT联盟
时间限制: 250ms
内存限制: 64MB
代码长度限制: 16KB
问题分析:
一开始想用count,但是感觉遍历次数太多会超时,试了一下果然是
然后改用字典装成绩,同时计数,虽然写的蠢了点,但是可以用
PS:这套题最大的敌人是超时啊!!!
扫描二维码关注公众号,回复:
3156382 查看本文章
代码:
input()
n = input().split()
x = input().split()
score = {}
rst = []
for i in x[1:]:
score[i] = 0
for i in n:
if i in score:
score[i] += 1
for i in x[1:]:
rst.append(str(score[i]))
print(' '.join(rst))