丧心病狂的计数

Description

有一天,stubird发现了n个糖罐,里面有很多糖罐,很喜欢吃糖的Stubrid当然想吃最多的糖, 但是他只能带走k个,问他最多能带走多少颗糖?

Input

第一行T,表示有T(T<=50)个测试样例 第二行n,k,表示有n个罐子,最多只能带走k个罐子(k<=n<=10^5) 接下来n个数xi,表示第i个罐子里面有多少颗糖(0<=xi<=10^5 )

Output

一行,输出最多他能带走多少颗糖

Sample Input

1 3 2 1 2 3

Sample Output

5

HINT

排序 取前k个

 1 #include <iostream>
 2 #include <cstring>
 3 #include <cstdio>
 4 #include <string>
 5 #include <algorithm>
 6 using namespace std;
 7 int T, n, k;
 8 #define maxn 100010
 9 int a[maxn];
10 bool cmp(int x, int y){
11     return x>y;
12 }
13 int main(){
14     scanf("%d", &T);
15     while(T--){
16         scanf("%d%d", &n, &k);
17         for(int i = 1; i <= n; i++) scanf("%d", &a[i]);
18         sort(a+1, a+1+n, cmp);
19         int sum = 0;
20         for(int i = 1; i <= k; i++) sum +=  a[i];
21         printf("%d
", sum);
22     }
23     
24     return 0;
25 }
原文地址:https://www.cnblogs.com/titicia/p/4342008.html