T405871 打表过样例
题目背景
众所周知,一名负责人的出题人,不应当让如下的打表程序获得过多的分数。
```cpp
#include
int main() {
std::cout 这个程序的功能是,输出一个特定的内容,以尝试通过一些测试点而获得分数。
>
> 经典的例子是:,输出无解可以获得 45 分的成绩。
题目描述
很不幸,你遇到了不负责任的出题人。
在某道试题里,共有 $N$ 个测试点,组成了 $k$ 个 Subtask,第 $i$ 个 Subtask 包含 $p_i$ 个测试点,第 $j$ 个测试点的编号为 $w_{i,j}$。请注意,一个测试点可能属于多个 Subtask。
> **Subtask**
>
> 每个 Subtask 包含多个测试点和一个分值,当且仅当通过全部这些测试点时,才能获得这个 Subtask 的分值。一道题目的得分为通过的所有 Subtask 分值之和。
这是一道输出仅有一个数的题目,编号为 $i$ 的测试点,标准答案为 $A_i$。
很不幸,由于命题人不负责任,$A_i$ 中出现了大量重复,让打表选手有了可乘之机。
现在,你通过某种手段获得了全部的数据,请问输出哪个数,可以得到最高的分数?最高的分数是多少?
如果有多个数均可得到最高的分数,你只需要任意给出一个。
输入格式
输入共 $k+3$ 行。
输入的第一行为一个正整数 $k$。
接下来 $k$ 行:
- 第 $i$ 行的第一个数为 $p_i$,代表第 $i$ 个 Subtask 包含的测试点数目。
- 接下来 $p_i$ 个数,第 $j$ 个代表测试点编号 $w_{i,j}$。
- 最后一个数为 $S_i$,代表这个 Subtask 的分值。
输入的第 $k+2$ 行为一个正整数 $N$。
输入的第 $k+3$ 行为 $N$ 个非负整数,第 $i$ 个代表 $A_i$。
输出格式
输出两行,每行一个整数。
第一行表示获得的最大分值。
第二行表示输出的数。
**如果有多个数可以取到相同的最大分值,任意输出一个即可。**
说明/提示
### 数据规模与约定
- 对于 $30\%$ 的测试数据,$1 \le N \le 100$,$1 \le k,p_i \le 10$,$1 \le A_i \le 100$。
- 对于 $100\%$ 的测试数据,$1 \le N \le 10^5$,$1 \le k,p_i \le 5000$,$1 \le w_{i,j} \le N$,$1 \le S_i \le 10^9$,$1 \leq A _ i \leq 10 ^ 9$。