题目描述
在 H 学校,C 考试一直被用来衡量学生编程、数据结构和算法能力的重要标准。C 考试满分 500500 分,一名学生只有取得不低于 200200 分的成绩才能毕业,我们称这样的学生为达到毕业要求的学生,C 考试未取得不低于 200200 分成绩的学生为达不到毕业要求的学生。
然而,随着内卷的激烈化,R 比赛走进了同学们的视野。由于该比赛组织混乱、试题难度低、获奖比例高,被同学们戏称为一等奖点击就送,成为公认的水赛。
在 2023 年的一等奖获奖名单中,同学们惊讶的发现,大量达不到毕业要求的学生竟然可以在 R 比赛中获得一等奖,这无疑是非常讽刺的一件事。
现在,给出 依次编号为 1∼N1∼N 的 H 学校的 NN 名同学的 C 考试成绩,和 R 比赛一等奖获奖名单。获奖名单中可能有超过 NN 的编号,这是由于其他一些学校也参加了 R 比赛,只有 1∼N1∼N 编号的学生属于 H 学校。
请你统计,有多少 H 学校的一等奖获得者,是达不到毕业要求的学生。
输入格式
输入共三行。
输入的第一行为两个正整数整数 N,MN,M,依次代表 H 学校的学生数目和 R 比赛一等奖获奖名单的人数。
输入的第二行为 NN 个非负整数,第 ii 个数 SiSi 代表编号为 ii 的学生 C 考试成绩。
输入的第三行为 MM 个正整数,第 ii 个数 WiWi 代表一名获奖者。
当且仅当 1≤Wi≤N1≤Wi≤N 时,获奖者 WiWi 属于 H 学校。
输出格式
输出一行一个整数,表示 H 学校的一等奖获得者中,有多少是未达到毕业要求的学生。
输入输出样例
输入 #1
5 8 200 0 199 200 500 3 1 2 6 8 10 11 12输出 #1
2
#include <bits/stdc++.h>
using namespace std;
int main() {
int n, m, sum = 0;
long long c[99999], s[99999];
cin >> n >> m;
for (int i = 1; i <= n; i++) {
cin >> c[i]; // H学校的学生数目 编号为1 - n
}
for (int i = 1; i <= m; i++) {
cin >> s[i]; // 获奖者编号
if (s[i] <= n && c[ s[i] ] < 200) { //如果获奖者编号小于n( 小于n就是H学校的学生 ),并且成绩小于200
sum++;
}
}
cout << sum;
return 0;
}