#include #include #define MAXN 1001 //decreasing order int compare (const void *s1, const void *s2){ double i1 = *((double*) s1), i2 = *((double*) s2); if (i1 > i2) return -1; else if (i1 < i2) return 1; else return 0; } int main(){ int k,K; int l,r,n; int i; double y[MAXN]; double sum; FILE *in = fopen ("yesorno.in", "r"); fscanf (in, "%d\n", &K); for (k = 1; k <= K; k ++){ fscanf(in,"%d %d %d",&l,&r,&n); for (i = 0; i < n; i++){ fscanf(in,"%lf",&y[i]); } qsort ((void *) y, n, sizeof(double), &compare); sum=0.0; for (i = 0; i < l; i++){ sum+=y[i]; } for (i = n-1; i >= r; i--){ sum+=(1-y[i]); } for (i = l; i < r; i++){ sum+=(y[i]>0.5)?y[i]:(1-y[i]); } printf ("Data Set %d:\n", k); printf ("%.2f\n", sum); } fclose (in); return 0; }