NC53389. Forsaken给学生分组
描述
输入描述
第一行两个整数分别为。第二行个数分别代表。
输出描述
一个整数表示最大的管理方便度之和。
示例1
输入:
5 1 10 6 2 7 9
输出:
8
C++14(g++5.4) 解法, 执行用时: 58ms, 内存消耗: 872K, 提交时间: 2019-10-25 19:17:40
#include<bits/stdc++.h> using namespace std; int n,m; long long ans; int a[200001]; int main() { cin>>n>>m; for(int i=1;i<=n;i++) cin>>a[i]; sort(a+1,a+n+1); for(int i=1;i<=m;i++) { ans+=a[n-i+1]-a[i]; } cout<<ans; }
C++11(clang++ 3.9) 解法, 执行用时: 83ms, 内存消耗: 2092K, 提交时间: 2020-02-25 20:29:41
#include<bits/stdc++.h> using namespace std; long a[1000005]; int main() { long long n,k,i,s=0; cin>>n>>k; for(i=0;i<n;i++) cin>>a[i]; sort(a,a+n); for(i=0;i<k;i++) { s+=a[n-i-1]-a[i]; } cout<<s; return 0; }
Python3(3.5.2) 解法, 执行用时: 197ms, 内存消耗: 14528K, 提交时间: 2019-10-25 19:57:34
n, k = list(map(int, input().split())) a = list(map(int, input().split())) a.sort() ans = 0 for i in range(k): ans += a[n - i - 1] - a[i] print(ans)