CF620D.Professor GukiZ and Two Arrays
提高+/省选-
通过率:0%
时间限制:3.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Professor GukiZ has two arrays of integers, a and b. Professor wants to make the sum of the elements in the array a s__a as close as possible to the sum of the elements in the array b s__b. So he wants to minimize the value v = |s__a - s__b|.
In one operation professor can swap some element from the array a and some element from the array b. For example if the array a is [5, 1, 3, 2, 4] and the array b is [3, 3, 2] professor can swap the element 5 from the array a and the element 2 from the array b and get the new array a [2, 1, 3, 2, 4] and the new array b [3, 3, 5].
Professor doesn't want to make more than two swaps. Find the minimal value v and some sequence of no more than two swaps that will lead to the such value v. Professor makes swaps one by one, each new swap he makes with the new arrays a and b.
GukiZ 教授有两个整数数组 a 和 b。他希望使数组 a 的元素和 sa 尽可能接近数组 b 的元素和 sb,即最小化值 v=∣sa−sb∣。
在一次操作中,教授可以交换数组 a 中的某个元素与数组 b 中的某个元素。例如,若数组 a=[5,1,3,2,4],数组 b=[3,3,2],则教授可交换 a 中的元素 5 与 b 中的元素 2,从而得到新数组 a=[2,1,3,2,4] 和新数组 b=[3,3,5]。
教授最多只允许进行两次交换。请找出最小可能的 v 值,以及一组至多包含两次交换的操作序列(每次交换均基于当前最新状态的数组 a 和 b)以达到该 v 值。
输入格式
The first line contains integer n (1 ≤ n ≤ 2000) — the number of elements in the array a.
The second line contains n integers a__i ( - 109 ≤ a__i ≤ 109) — the elements of the array a.
The third line contains integer m (1 ≤ m ≤ 2000) — the number of elements in the array b.
The fourth line contains m integers b__j ( - 109 ≤ b__j ≤ 109) — the elements of the array b.
第一行包含一个整数 n(1≤n≤2000)—— 数组 a 的元素个数。
第二行包含 n 个整数 ai(−109≤ai≤109)—— 数组 a 的元素。
第三行包含一个整数 m(1≤m≤2000)—— 数组 b 的元素个数。
第四行包含 m 个整数 bj(−109≤bj≤109)—— 数组 b 的元素。
输出格式
In the first line print the minimal value v = |s__a - s__b| that can be got with no more than two swaps.
The second line should contain the number of swaps k (0 ≤ k ≤ 2).
Each of the next k lines should contain two integers x__p, y__p (1 ≤ x__p ≤ n, 1 ≤ y__p ≤ m) — the index of the element in the array a and the index of the element in the array b in the p-th swap.
If there are several optimal solutions print any of them. Print the swaps in order the professor did them.
第一行输出在最多进行两次交换的情况下所能得到的最小值 v=∣sa−sb∣。
第二行输出交换次数 k(0≤k≤2)。
接下来的 k 行中,每行包含两个整数 xp,yp(1≤xp≤n,1≤yp≤m),分别表示第 p 次交换中数组 a 和数组 b 中被交换元素的下标。
若存在多种最优解,输出任意一种即可。请按教授执行交换的顺序输出这些交换操作。
输入输出样例
输入#1
5 5 4 3 2 1 4 1 1 1 1
输出#1
1 2 1 1 4 2
输入#2
5 1 2 3 4 5 1 15
输出#2
0 0
输入#3
5 1 2 3 4 5 4 1 2 3 4
输出#3
1 1 3 1
输入解题思路,AI测评打分。不知道怎么写?