#include<iostream> #include<string> #include<stdio.h> #include<algorithm> #include<map> #include<set> #include<vector> #include<cstring> //#include<conio.h> using namespace std; typedef struct { string name; int scor, nrg; } tip; tip a[5]; int i,j,s1,s2,nr; bool cmp(tip a, tip b) { if (a.scor!=b.scor) return a.scor>b.scor; else if (a.nrg!=b.nrg) return a.nrg>b.nrg; else return a.name<b.name; } void addnrg(string name, int nrg) { bool ok=0; for (int k=1; k<=nr; ++k) if (a[k].name==name) { ok=1; a[k].nrg+=nrg; } if (ok==0) { ++nr; a[nr].name=name; a[nr].nrg=nrg; a[nr].scor=0; } } void addscor(string name, int scor) { for (int k=1; k<=nr; ++k) if (a[k].name==name) a[k].scor+=scor; } int main(void) { //freopen("file.in","r",stdin); string n1, n2; for (i=1; i<=6; ++i) { cin>>n1>>n2>>s1>>s2; addnrg(n1,s1); addnrg(n2,s2); if (s1>s2) addscor(n1,3); else if (s2>s1) addscor(n2,3); else { addscor(n1,1); addscor(n2,1); } } sort(a+1,a+4+1,cmp); for (i=1; i<=4; ++i) cout<<a[i].name<<"\n"; //getch(); return 0; }