#6988. 选修课程

选修课程

题目描述

nn 名学生,mm 门课,每名学生都选择了一门课。第 ii 门课的名称为 sis_i,最多可以接受 cic_i 名学生,最少需要达到或超过 cic_i 的一半才能开课。第 jj 位学生所选的课程名为 tit_i,保证 tit_i 一定和某个 sis_i 相等,保证所有课程名字仅由英文字母构成。

  • 如果第 ii 门课选修的人数多于 cic_i 人,则多于 cic_i 的那部分学生需要重新选课;
  • 如果第 ii 门课选修的人数没有达到 cic_i 的一半,则选择该门课程的学生全部需要重新选课。

请统计最后有多少门课需要取消,以及有多少学生需要重新选课。

输入格式

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

输出格式

  • 第一行:单个整数,表示有多少门课不足开班要求;
  • 第二行:单个整数,表示有多少学生需要重新选课。
3 10
computer 4
math 4
english 4
computer
math
computer
computer
computer
english
computer
computer
english
english
1
3

样例解释 1

math不足最低要求人数,computer超额2人,共1+2=3人需要再次选课

数据范围

  • 1n10001 \leq n \leq 1000
  • 1m10001 \leq m \leq 1000
  • 1ci10001 \leq c_i \leq 1000

数据保证所有课程名称的字符串长度不超过 2020