CF620D Professor GukiZ and Two Arrays

题目描述

GukiZ 教授有两个整数数组 a 和 b。教授希望使数组 a 的元素和 $s_a$ 尽可能接近数组 b 的元素和 $s_b$。因此,他想最小化值 $v = |s_a - s_b|$。 在一次操作中,教授可以交换数组 $\text{a}$ 中的任一元素和数组 $\text{b}$ 中的任一元素。例如,如果数组 $\text{a}=[5,1,3,2,4]$,数组 $\text{b}=[3,3,2]$,教授可以交换 $\text{a}$ 中的元素 $5$ 和 $\text{b}$ 中的元素 $2$,得到新数组 $\text{a} = [2,1,3,2,4]$ 和新数组 $\text{b} = [3,3,5]$。教授依次进行交换,每次交换都是基于新的数组 a 和 b。 教授不想进行超过两次交换。请你找到最小值 $v$,以及达到这个值 $v$ 的交换方案。

输入格式

第一行包含整数 $n$($1 \le n \le 2000$),表示数组 a 的元素个数。 第二行包含 $n$ 个整数 $a_i$($-10^9 \le a_i \le 10^9$),表示数组 a 的元素。 第三行包含整数 $m$($1 \le m \le 2000$),表示数组 b 的元素个数。 第四行包含 $m$ 个整数 $b_j$($-10^9 \le b_j \le 10^9$),表示数组 b 的元素。

输出格式

第一行输出最小值 $v = |s_a - s_b|$。 第二行输出交换次数 $k$($0 \le k \le 2$)。 接下来的 $k$ 行,每行包含两个整数 $x_p, y_p$($1 \le x_p \le n, 1 \le y_p \le m$)表示第 $p$ 次交换中数组 a 中的元素索引和数组 b 中的元素索引。 如果有多个最优解,输出任意一个。