牛客小白月赛18 C. Forsaken给学生分组(思维)
程序员文章站
2022-06-08 18:50:07
...
题目链接:点击这里
保证每一组都是当前最大的减去最小的。
long long:
#include<iostream>
#include<algorithm>
#include<string>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<stack>
#include<queue>
using namespace std;
typedef long long ll;
const int MOD = 10000007;
const int INF = 0x3f3f3f3f;
const double PI = acos(-1.0);
const int maxn = 100010;
int a[maxn], b[maxn], n, k;
bool cmp(int a, int b)
{
return a > b;
}
int main()
{
scanf("%d%d", &n, &k);
for(int i = 0; i < n; i++)
{
scanf("%d", &a[i]);
b[i] = a[i];
}
sort(a, a+n); //从小到大
sort(b, b+n, cmp); //从大到小
int cnt = n/2;
ll ans = 0;
if(k<=cnt)
for(int i = 0; i < k ; i++)
ans += b[i]-a[i];
else
for(int i = 0; i < n-k; i++)
ans += b[i]-a[i];
printf("%lld\n", ans);
return 0;
}
上一篇: STM32学习心得二十四:内部温度传感器原理及实验
下一篇: 内插函数恢复模拟信号