#include #include #include #include #include #include #include #include #define ll long long using namespace std; /* It is an exact hour: ZT == "00" (e.g. 12:00) It is a doubled time: XY == ZT (e.g. 12:12) It is a mirror time: XY == TZ (e.g. 12:21) It has consecutive digits (e.g. 01:23, 23:45) After removing the separating ":", the remaining 4-digit number is a power of two with no leading zeros (e.g. 10:24, 20:48) */ struct trio{ string name; int goals; int score; }; trio a[6]; int NR; string t1,t2; bool heavy_cmp(const trio &s1, const trio &s2){ if(s1.score != s2.score) return s1.score > s2.score; else if(s1.goals != s2.goals) return s1.goals > s2.goals; else return s1.name < s2.name; } void add(string &teamname, int plus_score, int plus_goals){ int i,found = 0; for(i=1;i<=NR;++i) if(a[i].name == teamname) { a[i].score += plus_score; a[i].goals += plus_goals; found = 1; break; } if(!found) { ++NR; a[NR].name = teamname; a[NR].score = plus_score; a[NR].goals = plus_goals; } } int main(){ #ifndef ONLINE_JUDGE ifstream cin("A.in"); ofstream cout("A.out"); #endif int i,N,ok; int s1,s2; for(i=1;i<=6;++i) { cin >> t1 >> t2 >> s1 >> s2; if(s1 == s2) { add(t1,1,s1); add(t2,1,s2); } else if(s1 > s2) { add(t1,3,s1); add(t2,0,s2); } else { add(t1,0,s1); add(t2,3,s2); } } sort(a+1,a+NR+1,heavy_cmp); for(i=1;i<=NR;++i) cout << a[i].name << '\n'; return 0; }