问题 5181 --选修课程

5181: 选修课程

题目描述

有 $n$ 名学生,$m$ 门课,每名学生都选择了一门课。第 $i$ 门课的名称为 $s_i$,最多可以接受 $c_i$ 名学生,最少需要达到或超过 $c_i$ 的一半才能开课。第 $j$ 位学生所选的课程名为 $t_i$,保证 $t_i$ 一定和某个 $s_i$ 相等,保证所有课程名字仅由英文字母构成。 + 如果第 $i$ 门课选修的人数多于 $c_i$ 人,则多于 $c_i$ 的那部分学生需要重新选课; + 如果第 $i$ 门课选修的人数没有达到 $c_i$ 的一半,则选择该门课程的学生全部需要重新选课。 请统计最后有多少门课需要取消,以及有多少学生需要重新选课。

输入

第一行:两个正整数 $m$ 和 $n$; 第二行到第 $m+1$ 行:第 $i+1$ 行有一个字符串 $s_i$ 及一个正整数 $c_i$,分别表示第 $i$ 门课的名称和人数上限; 接下来 $n$ 行:每行一个字符串,表示一名学生选择的课程名字。

输出

+ 第一行:单个整数,表示有多少门课不足开班要求; + 第二行:单个整数,表示有多少学生需要重新选课。

样例输入输出

输入#1 复制
3 10
computer 4
math 4
english 4
computer
math
computer
computer
computer
english
computer
computer
english
english
输出#1 复制
1
3

提示

+ $1 \leq n \leq 1000$ + $1 \leq m \leq 1000$ + $1 \leq c_i \leq 1000$ 数据保证所有课程名称的字符串长度不超过 $20$。 样例1说明:math不足最低要求人数,computer超额2人,共1+2=3人需要再次选课
序号 标题 作者 发表时间 费用 订购数 操作