#include #include #include using std::sort; struct pup { char name[35]; bool sex,banned; double r1,r2,last; bool operator<(pup a)const { return last < a.last; } }per[200]; #define MAX(a,b) ((a > b)?0:(a = b)) int main() { #ifdef local freopen("SDOI_test.txt","r",stdin); #endif int T,n,m,r1,r2,code; double maxr1,maxr2,herscore; int hasbestgirl = false; char hname[35]; char sex[30]; scanf("%d",&T); for(int t = 1;t <= T;++t) { scanf("%d%d",&n,&m); maxr1 = maxr2 = 0; hasbestgirl = false; for(int i = 1;i <= n;++i) { scanf("%s%s%d%d",per[i].name,sex,&r1,&r2); MAX(maxr1,r1),MAX(maxr2,r2); per[i].sex = (sex[0] == 'f'); per[i].r1 = r1,per[i].r2 = r2; per[i].banned = false; } maxr1 = 300. / maxr1;maxr2 = 300. / maxr2; for(int i = 1;i <= n;++i) { per[i].r1 *= maxr1; per[i].r2 *= maxr2; per[i].last = per[i].r1 * 0.3 + per[i].r2 * 0.7; if (per[i].sex && (!hasbestgirl || (hasbestgirl && per[i].last > herscore))) { hasbestgirl = true; herscore = per[i].last; code = i; } } if (hasbestgirl) strcpy(hname,per[code].name),per[code].banned = true; sort(per+1,per+n+1); puts("The member list of Shandong team is as follows:"); if (hasbestgirl) --m; code = n; for(int i = 1;i <= m;++i) { if (per[code].banned) --code; // if (hasbestgirl && herscore > per[code].last) printf("%s %.2lf\n",hname,herscore),hasbestgirl = false; if (hasbestgirl && herscore > per[code].last) printf("%s\n",hname),hasbestgirl = false; // printf("%s %.2lf\n",per[code].name,per[code].last); printf("%s\n",per[code].name); --code; } if (hasbestgirl) printf("%s\n",hname); } fclose(stdin);fclose(stdout); return 0; }