#P15597. [ICPC 2020 Jakarta R] Writing Tasks

[ICPC 2020 Jakarta R] Writing Tasks

题目描述

2020 年,印度尼西亚举办了 CC 场编程竞赛,编号从 11CC。每场竞赛有零道或多道为它编写的题目。有 AA 位题目作者可以为这些竞赛编写题目,编号从 11AA。第 ii 位作者只喜欢竞赛集合 Li{1,2,,C}L_i \subseteq \{1, 2, \dots, C\},并且只想为 LiL_i 中的竞赛编写题目。每位作者不能为同一场竞赛编写超过一道题目。

此外,编程竞赛题目有 TT 个话题,编号从 11TT。例如,话题 11 可能与图论题目有关,话题 22 可能与字符串题目有关,等等。每道题目恰好属于一个话题。第 ii 位作者熟悉话题集合 Fi{1,2,,T}F_i \subseteq \{1, 2, \dots, T\},并且只想编写关于 FiF_i 中话题的题目。每位作者不能编写超过一道关于同一话题的题目。

另外,每场竞赛还有一个教学大纲。第 jj 场竞赛的大纲包含话题集合 Sj{1,2,,T}S_j \subseteq \{1, 2, \dots, T\},为该竞赛编写的题目的话题必须在 SjS_j 中。每场竞赛不能有超过一道关于同一话题的题目。

你是一位印度尼西亚的编程竞赛爱好者。令人惊讶的是,你观察到以下情况:

  • 每位作者最多喜欢两场竞赛。类似地,每场竞赛最多被两位作者喜欢。
  • 每位作者最多熟悉两个话题。类似地,每个话题最多被两位作者熟悉。
  • 每场竞赛的大纲最多包含两个话题。类似地,每个话题最多出现在两场竞赛的大纲中。

你想要找出在所有竞赛中最多能编写的题目总数。

输入格式

输入第一行包含三个整数 AACCTT1A,C,T500001 \leq A, C, T \leq 50\,000),分别表示题目作者的数量、竞赛的数量和话题的数量。

接下来 AA 行,每行以一个整数 Li|L_i|0Li20 \leq |L_i| \leq 2)开头,表示第 ii 位作者喜欢的竞赛数量,后面跟着 Li|L_i| 个整数 Li[x]L_i[x]1Li[x]C1 \leq L_i[x] \leq C),表示喜欢的竞赛。保证 LiL_i 中的值互不相同。同时保证对于所有 1jC1 \leq j \leq C,数值 jji=1ALi\bigcup_{i=1}^A L_i 中最多出现两次。

接下来 AA 行,每行以一个整数 Fi|F_i|0Fi20 \leq |F_i| \leq 2)开头,表示第 ii 位作者熟悉的话题数量,后面跟着 Fi|F_i| 个整数 Fi[y]F_i[y]1Fi[y]T1 \leq F_i[y] \leq T),表示熟悉的话题。保证 FiF_i 中的值互不相同。同时保证对于所有 1kT1 \leq k \leq T,数值 kki=1AFi\bigcup_{i=1}^A F_i 中最多出现两次。

接下来 CC 行,每行以一个整数 Sj|S_j|0Sj20 \leq |S_j| \leq 2)开头,表示第 jj 场竞赛大纲中的话题数量,后面跟着 Sj|S_j| 个整数 Sj[z]S_j[z]1Sj[z]T1 \leq S_j[z] \leq T),表示大纲中的话题。保证 SjS_j 中的值互不相同。同时保证对于所有 1kT1 \leq k \leq T,数值 kkj=1CSj\bigcup_{j=1}^C S_j 中最多出现两次。

输出格式

输出一行一个整数,表示在所有竞赛中最多能编写的题目总数。

2 3 2
2 1 2
2 2 3
1 1
1 1
1 1
1 1
1 2
2

提示

样例 #1 解释

最多可以编写两道题目:

  1. 11 位作者为第 11 场竞赛编写一道关于话题 11 的题目。
  2. 22 位作者为第 22 场竞赛编写一道关于话题 11 的题目。

注意,第 11 位作者已经编写了一道关于话题 11 的题目,因此他不能为第 22 场竞赛再编写关于同一话题的题目。

此例可由下图说明,其中 AiA_i 表示第 ii 位作者,CjC_j 表示第 jj 场竞赛,TkT_k 表示第 kk 个话题,粗线表示第一道题目,虚线表示第二道题目。

:::align{center} :::

翻译由 DeepSeek 完成