#include<cstdio>#include<vector>#include<algorithm>#include<cmath>#include<deque>using namespace std;namespace{struct Student{deque<int> q;int bonus, abs;double avg, adjAvg;int grade;};void grade(Student *s, double mean, double sd){if (s->adjAvg >= mean + sd)s->grade = 4;else if (s->adjAvg >= mean)s->grade = 3;else if (s->adjAvg >= (mean - sd))s->grade = 2;elses->grade = 1;}void adj_grade(Student *s){s->grade -= s->abs / 4;if (s->grade < 0)s->grade = 0;if (s->abs == 0 && s->grade < 4)s->grade++;}}int main(){puts("MAKING THE GRADE OUTPUT");int N, S, T;scanf("%d", &N);vector<Student *> V;while (N--){scanf("%d %d", &S, &T);V.clear();double total = 0;for (int i = 0; i < S; i++){Student *stu = new Student();int score, sum = 0;for (int j = 0; j < T; j++){scanf("%d", &score);stu->q.push_back(score);sum += score;}if (T > 2){sort(stu->q.begin(), stu->q.end());sum -= stu->q.front();stu->q.pop_front();}stu->avg = sum * 1.0 / stu->q.size();total += stu->avg;scanf("%d %d", &(stu->bonus), &(stu->abs));stu->adjAvg = stu->avg + (stu->bonus) / 2 * 3;V.push_back(stu);}double mean = total / S;total = 0;for (size_t i = 0; i < V.size(); i++)total += (V[i]->avg - mean) * (V[i]->avg - mean);double sd = sqrt(total / S);if (sd < 1)sd = 1;double res = 0;for (size_t i = 0; i < V.size(); i++){grade(V[i], mean, sd);adj_grade(V[i]);res += V[i]->grade;}printf("%.1lfn", res / V.size());}puts("END OF OUTPUT");return 0;}


