Problem:
Score : 200 points

Problem Statement

Snuke has N sticks.
The length of the i-th stick is l_i.

Snuke is making a snake toy by joining K of the sticks together.

The length of the toy is represented by the sum of the individual sticks that compose it.
Find the maximum possible length of the toy.

Constraints

1 \leq K \leq N \leq 50

1 \leq l_i \leq 50

l_i is an integer.

Input

Input is given from Standard Input in the following format:

N K
l_1 l_2 l_3 ... l_{N}

Output

Print the answer.

Sample Input 1

5 3
1 2 3 4 5

Sample Output 1

12

You can make a toy of length 12 by joining the sticks of lengths 3, 4 and 5, which is the maximum possible length.

Sample Input 2

15 14
50 26 27 21 41 7 42 35 7 5 5 36 39 1 45

Sample Output 2

386

Solution in C (GCC 5.4.1) (judge verdict: Accepted)

#include <stdio.h>
#include <stdlib.h>

void sort(int*, int);
void swap(int*, int*);

int main(void) {
  int n, k;
  int *l;

  scanf("%d %d", &n, &k);
  l = (int *)malloc(sizeof(int) * n);
  if(l == NULL) {
    printf("malloc() failed.\n");
    return 1;
  }
  int i;
  for(i=0;i<n;i++) {
    scanf("%d", &l[i]);
  }

  sort(l, n);
  int ans = 0;
  for(i=0;i<k;i++) {
    ans += l[i];
  }
  printf("%d", ans);
  free(l);
  return 0;
}

void sort(int *data, int length) {
  int i, flag;
  while(1) {
    flag = 0;
    for(i=0;i<length-1;i++) {
      if(data[i] < data[i+1]) {
	swap(&data[i], &data[i+1]);
	flag = 1;
      }
    }
    if(flag == 0) break;
  }
}
void swap(int *x, int *y) {
  int temp = *x;
  *x = *y;
  *y = temp;
}