站外题求助
查看原帖
站外题求助
1109798
Faispasca__XJZ__楼主2025/6/28 19:23
#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
*/
2025/6/28 19:23
加载中...