最佳交换
Description
星星小朋友和 N-1 个小伙伴一起玩了一上午的纸牌游戏,星星总是能赢,气焰嚣张,小伙伴们决定出道纸牌问题难倒星星,让他别再狂妄自大了,问题是这样的:每人摸一张牌,每张牌上写着某一个数字,然后规定若干对伙伴间交换纸牌(每个小伙伴只允许交换一次),交换得分就是大的纸牌值减去小的纸牌值,若干次得分加起来和最大是多少?可是小伙伴们忘记了星星学过编程,请你和他一起来用程序解决这个问题吧。
Input
第一行两个用空格隔开的正整数 M,N,分别表示交换次数和总人数(星星也算在内)
第二行 N 个用空格隔开的正整数
Output
一个正整数,表示最大得分值
Sample Input 1
1 5 3 7 2 1 6
Sample Output 1
6
Sample Input 2
2 5 3 7 2 1 6
Sample Output 2
10
Source
#include <algorithm>
#include <iostream>
#include <cstdio>
using namespace std;
int arr[1010];
int main(){
int n,m;
cin>>n>>m;
int i;
for(i=0;i<m;i++){
cin>>arr[i];
}
sort(arr,arr+m);
int j;
int ans=0;
for(j=0;j<n;j++){
ans+=arr[m-1-j]-arr[0+j];
}
cout<<ans;
return 0;
}