#B3912. [语言月赛 202312] 打表过样例

    ID: 9296 Type: RemoteJudge 1000ms 512MiB Tried: 1 Accepted: 1 Difficulty: 2 Uploaded By: Tags>模拟2023Special JudgeO2优化排序数组语言月赛

[语言月赛 202312] 打表过样例

题目背景

众所周知,一名负责任的出题人,不应当让如下的打表程序获得过多的分数。

#include<iostream>
int main() {
    std::cout << "Specific Value\n";
}

这个程序的功能是,输出一个特定的内容,以尝试通过一些测试点而获得分数。

经典的例子是:https://www.luogu.com.cn/problem/P8819,输出无解可以获得 45 分的成绩。

题目描述

很不幸,你遇到了不负责任的出题人。

在某道试题里,共有 NN 个测试点,组成了 kk 个 Subtask,第 ii 个 Subtask 包含 pip_i 个测试点,第 jj 个测试点的编号为 wi,jw_{i,j}。请注意,一个测试点可能属于多个 Subtask。

Subtask

每个 Subtask 包含多个测试点和一个分值,当且仅当通过全部这些测试点时,才能获得这个 Subtask 的分值。一道题目的得分为通过的所有 Subtask 分值之和。

这是一道输出仅有一个数的题目,编号为 ii 的测试点,标准答案为 AiA_i

很不幸,由于命题人不负责任,AiA_i 中出现了大量重复,让打表选手有了可乘之机。

现在,你通过某种手段获得了全部的数据,请问输出哪个数,可以得到最高的分数?最高的分数是多少?

如果有多个数均可得到最高的分数,你只需要任意给出一个。

输入格式

输入共 k+3k+3 行。

输入的第一行为一个正整数 kk

接下来 kk 行:

  • ii 行的第一个数为 pip_i,代表第 ii 个 Subtask 包含的测试点数目。
  • 接下来 pip_i 个数,第 jj 个代表测试点编号 wi,jw_{i,j}
  • 最后一个数为 SiS_i,代表这个 Subtask 的分值。

输入的第 k+2k+2 行为一个正整数 NN

输入的第 k+3k+3 行为 NN 个非负整数,第 ii 个代表 AiA_i

输出格式

输出两行,每行一个整数。

第一行表示获得的最大分值。

第二行表示输出的数。

如果有多个数可以取到相同的最大分值,任意输出一个即可。

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

7
5

提示

数据规模与约定

  • 对于 30%30\% 的测试数据,1N1001 \le N \le 1001k,pi101 \le k,p_i \le 101Ai1001 \le A_i \le 100
  • 对于 100%100\% 的测试数据,1N1051 \le N \le 10^51k,pi50001 \le k,p_i \le 50001wi,jN1 \le w_{i,j} \le N1Si1091 \le S_i \le 10^91Ai1091 \leq A _ i \leq 10 ^ 9