#include <iostream>
#include <algorithm>
using namespace std;
int a[1919810], b[1919810], n;
int main() {
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> a[i];
}
for (int i = 1; i <= n; i++) {
cin >> b[i];
}
sort(a + 1, a + n + 1);
sort(b + 1, b + n + 1);
int ans = 0;
for (int i = 1; i <= n; i++) {
ans += a[i] * b[i];
}
cout << ans << endl;
return 0;
}
/*题目描述
有两只老鼠分别拥有 nn 个数字 A1,A2,…,An−1,An和 B1,B2,…,Bn−1,Bn,它们要做一个游戏。
他们每一轮选出一个自己的数字,把它们乘起来后的答案加入积分,总共进行 n轮。
注意:选过的数字不能再选。
请问积分最大可能是多少?
输入格式
第一行一个正整数 n,表示老鼠拥有的数字个数。
第二行 n 个数字 Ai,表示第一只老鼠的数字。
第三行 n个数字 Bi,表示第二只老鼠的数字。
输出格式
共一行一个整数,表示可能的最大积分值。
样例
input
3
1 2 2
1 1 2
output
7
限制与约定
对于所有数据 1≤n≤106,1≤Ai,Bi≤105。
对于 20% 的数据,保证第一只老鼠的数字全部相同。
对于另外 30% 的数据,保证 n≤20。
时间限制:1s
空间限制:512MiB
*/