#include <stdio.h>
void quicksort (int x[], int l, int r);
void swap (int x[], int a, int b);
int main(){
int n, k;
int r[110]={};
double c = 0;
scanf("%d%d", &n, &k);
for (int i = 0; i < n; i++) scanf("%d", &r[i]);
quicksort (r, 0, n-1);
for (int i = 0; i < k; i++) c = (c + (double)r[n-k+i])/2;
printf("%lf\n", c);
return 0;
}
void quicksort (int x[], int l, int r) {
int p = (r + l)/2;
int i = l, j = r;
for (; j > i; i++) {
if (x[i] >= x[p]) {
for (; j > i; j--) {
if (x[p] > x[j]) {
swap(x, i, j);
break;
}
}
}
}
if (i - l >= 2) quicksort (x, l, i - 1);
if (r - j >= 2) quicksort (x, j + 1, r);
}
void swap (int x[], int a, int b) {
int temp;
temp = x[a];
x[a] = x[b];
x[b] = temp;
}
./Main.c: In function ‘main’:
./Main.c:10:3: warning: ignoring return value of ‘scanf’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d%d", &n, &k);
^
./Main.c:11:31: warning: ignoring return value of ‘scanf’, declared with attribute warn_unused_result [-Wunused-result]
for (int i = 0; i < n; i++) scanf("%d", &r[i]);
^