G 阿宁的整数配对
原题连接
代码
点击查看代码
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<vector>
#include<queue>
using namespace std;
#define X first
#define Y second
typedef pair<int,int> pii;
typedef long long LL;
const char nl = '\n';
const int N = 2e5+10;
const int M = 1e6+10;
int a[N];
int n,k;
int cnt1,cnt2;
void solve(){
cin >> n >> k;
for(int i = 1; i <= n; i ++ )cin >> a[i];
sort(a+1,a+n+1);
LL ans = 0;
int i = 1,j = n;
while(k --){
if(a[i] * a[i + 1] <= a[j] * a[j - 1]){
ans += a[j] * a[j - 1];
j -= 2;
}
else{
ans += a[i] * a[i + 1];
i += 2;
}
}
cout << ans;
}
int main(){
ios::sync_with_stdio(false);
cin.tie(0),cout.tie(0);
solve();
}