游客 Signup | Login
中文 | En

3638 - 向量积

有两个向量v1=(x1,x2...xn) v2=(y1,y2...yn),允许任意交换v1,v2各自的分量的顺序。请计算V1,V2向量积

(x1*y1+x2*y2......)的最小值

限制条件
1<=n<=400
-100000<=xi,yi<=100000

Input

先输入n.
接下来两行,第一行输入x1...xn,第二行输入y1...yn

Output

向量积的最小值

Examples

Input

3
1 3 -5
-2 4 1
5
1 2 3 4 5
1 0 1 0 1

Output

-25
6

Solution C++

#include <bits/stdc++.h>
using namespace std;
int main()
{
	int n;
	//freopen("F:\\QQDownlaod\\Laputa\\2015.3.23\\1(2)\\test.in","r",stdin);
	while(~scanf("%d",&n)){
		long long d[405],b[405];
		for (int i=0;i<n;i++) scanf("%lld",&d[i]);
		for (int i=0;i<n;i++) scanf("%lld",&b[i]);
		sort(d,d+n);
		sort(b,b+n);
		long long sum=0;
		for (int i=0;i<n;i++){
			sum+=(d[i]*b[n-1-i]);
		}
		printf("%lld\n",sum);
	}
	return 0;
}
Time Limit 1 second
Memory Limit 128 MB
Discuss Stats
上一题 下一题