题解:P12218 [蓝桥杯 2023 国 Java B] 玩具

· · 题解

思路

简单的贪心。

要使权重和最小,应让重量最大的零件搭配重量最小的零件,重量第 i 大的零件搭配重量第 i 小的零件。 将答案累加即可。

提醒:记得开long long。

代码

#include<bits/stdc++.h>
#define N 100005
#define int long long 
using namespace std;
int n,ans;
int a[N*2];
signed main()
{
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        scanf("%lld%lld",&a[i],&a[i+n]);
    }
    sort(a+1,a+1+2*n);
    for(int i=1;i<=n;i++)
    {
        ans+=a[i]*a[2*n-i+1];
    }
    cout<<ans<<endl;
    return 0;
}