CF1641D Two Arrays

题目描述

Sam 转学了,在第一节生物课上,他得到了一个非常有趣的关于基因的任务。 给定 $n$ 个数组,第 $i$ 个数组包含 $m$ 个不同的整数——$a_{i,1}, a_{i,2},\ldots,a_{i,m}$。同时给定一个长度为 $n$ 的整数数组 $w$。 请你在所有满足条件的整数对 $(i, j)$($1 \le i, j \le n$)中,找到 $w_i + w_j$ 的最小值,条件是 $a_{i,1}, a_{i,2},\ldots,a_{i,m}, a_{j,1}, a_{j,2},\ldots,a_{j,m}$ 这 $2m$ 个数两两不同。

输入格式

第一行包含两个整数 $n$、$m$($2 \leq n \leq 10^5$,$1 \le m \le 5$)。 接下来的 $n$ 行中,第 $i$ 行首先给出 $m$ 个不同的整数 $a_{i,1}, a_{i,2}, \ldots, a_{i,m}$,随后是 $w_i$($1\leq a_{i,j} \leq 10^9$,$1 \leq w_{i} \leq 10^9$)。

输出格式

输出一个整数,表示问题的答案。 如果不存在满足条件的 $(i, j)$ 对,输出 $-1$。

说明/提示

在第一个测试样例中,最小值为 $5 = w_3 + w_4$,因为数 $\{2, 3, 4, 5\}$ 两两不同。 在第二个测试样例中,不存在满足条件的数对。 由 ChatGPT 4.1 翻译