机器人队列
时间限制:1秒 内存限制:256M
【题目描述】
H老师有两个机器人队列,每个队列都有 n 个机器人,每个机器人都有一个高度,且同一队列的机器人高度互不相同。两列机器人之间“不协调度”定义为 \(\sum_{i=1}^n{(a_i-b_i)^2}\),其中 \(a_i\) 表示第一列机器人中第 \(i\) 个机器人的高度,\(b_i\) 表示第二列机器人中第 \(i\) 个机器人的高度。
每列机器人中相邻两个机器人的位置都可以交换,请你通过交换使得两列机器人之间的不协调度最小。请问得到这个最小的不协调度,最少需要交换多少次?如果这个数字太大,请输出这个最小交换次数对 \(10^9+7\) 取模的结果。
【输入格式】
第一行包含一个整数 \(n\),表示每个队列中机器人的数目。
第二行有 \(n\) 个整数,每两个整数之间用一个空格隔开,表示第一列机器人的高度。
第三行有 \(n\) 个整数,每两个整数之间用一个空格隔开,表示第二列机器人的高度。
【输出格式】
输出一个整数,表示最少交换次数对 \(10^9+7\) 取模的结果。
【输入输出样例1】
Input
4
4 5 2 8
5 4 2 8
Output
1
【样例1解释】
两列机器人的最小不协调度是 0,最少需要交换 1 次,比如:交换第 1 列的前 2 个机器人或者交换第 2 列的前 2 根机器人。
【输入输出样例2】
Input
4
3 5 6 4
3 9 4 6
Output
2
【样例2解释】
最小不协调度是 10,最少需要交换 2 次,比如:交换第 1 列的中间 2 根机器人的位置,再交换第 2 列中后 2 根机器人的位置。
【数据限制】
对于 10% 的数据,\(1≤n≤10\);
对于 30% 的数据,\(1≤n≤100\);
对于 60% 的数据,\(1≤n≤1000\);
对于 100% 的数据,\(1≤n≤100000,0≤机器人高度 ≤ maxlongint\)。
【来源】
Mr.he