CF1121A.Technogoblet of Fire

传统题 时间 2000 ms 内存 256 MiB 5 尝试 1 已通过 1 标签

Technogoblet of Fire

题目描述

众所周知,mm-coder 锦标赛即将举行。共有 mm 所学校参加比赛,每所学校只有一名学生参赛。

这些学校共有 nn 名学生。在比赛开始前,所有学生都将自己的名字和所在学校的名字投入 Technogoblet of Fire。之后,Technogoblet 会从每所学校中选出最强的学生参赛。

Arkady 是一名黑客,他希望有 kk 名“被选中的人”能被 Technogoblet 选中。不幸的是,并不是所有“被选中的人”都是各自学校中最强的,但 Arkady 可以伪造一些新的学校名字,并将 Technogoblet 中的部分学校名称替换为这些新名字。每个伪造的学校名字只能使用一次。这样,Technogoblet 也会从这些伪造的学校中选出最强的学生。

你知道每个学生的实力以及他们所在的学校。请计算 Arkady 至少需要伪造多少个学校名字,才能让 kk 名“被选中的人”都被 Technogoblet 选中。

输入格式

第一行包含三个整数 nnmmkk1n1001 \le n \le 1001m,kn1 \le m, k \le n),分别表示学生总数、学校数和“被选中的人”数量。

第二行包含 nn 个不同的整数 p1,p2,,pnp_1, p_2, \ldots, p_n1pin1 \le p_i \le n),其中 pip_i 表示第 ii 个学生的实力值。实力值越大,学生越强。

第三行包含 nn 个整数 s1,s2,,sns_1, s_2, \ldots, s_n1sim1 \le s_i \le m),其中 sis_i 表示第 ii 个学生所在的学校编号。每所学校至少有一名学生。

第四行包含 kk 个不同的整数 c1,c2,,ckc_1, c_2, \ldots, c_k1cin1 \le c_i \le n),表示“被选中的人”的编号。

输出格式

输出一个整数,表示 Arkady 至少需要伪造多少个学校名字,才能让 kk 名“被选中的人”都被 Technogoblet 选中。

说明/提示

在第一个样例中,只有编号为 33 的“被选中的人”。他的实力为 33,但在同一所学校 11 中,还有编号为 55、实力为 66 的学生,这意味着如果不采取行动,Technogoblet 不会选择编号为 33 的学生。如果我们为这名“被选中的人”伪造一个新的学校(比如编号为 44),Technogoblet 就会选择编号为 22(学校 33 最强)、55(学校 11 最强)、66(学校 22 最强)和 33(学校 44 最强)。

在第二个样例中,你可以将编号为 33 的学生的学校改为伪造的 55,将编号为 44 的学生的学校改为伪造的 66。这样 Technogoblet 会选择编号为 887766553344

由 ChatGPT 4.1 翻译

样例

7 3 1
1 5 3 4 6 7 2
1 3 1 2 1 2 3
3
1
8 4 4
1 2 3 4 5 6 7 8
4 3 2 1 4 3 2 1
3 4 5 6
2

在线编程 IDE

建议全屏模式获得最佳体验