#define _CRT_SECURE_NO_DEPRECATE #include #include #include #include #include #include #include using namespace std; char T1[101], T2[101]; int G1, G2, p, nrT, ok1, ok2; struct Team{ int G, P; char Name[101]; }T[5]; int main(){ int i, j; //freopen("test.in", "r", stdin); //freopen("test.out", "w", stdout); for (i = 1; i <= 6; i++){ scanf("%s %s %d %d", T1, T2, &G1, &G2); G1 == G2 ? p = 1 : (G1 > G2 ? p = 3 : p = 0); ok1 = 0; ok2 = 0; for (j = 1; j <= nrT; j++){ if (strcmp(T[j].Name, T1) == 0 && !ok1){ ok1 = 1; T[j].G += G1; T[j].P += p; } else if ((strcmp(T[j].Name, T2) == 0 && !ok2)){ ok2 = 1; T[j].G += G2; T[j].P += (p == 1 ? p : 3 - p); } } if (!ok1) { ++nrT; strcpy(T[nrT].Name, T1); T[nrT].G += G1; T[nrT].P += p; } if (!ok2) { ++nrT; strcpy(T[nrT].Name, T2); T[nrT].G += G2; T[nrT].P += (p == 1 ? p : 3 - p); } } // sort for (i = 1; i < 4; i++){ for (j = i + 1; j > 1; j--){ if (T[j].P > T[j-1].P){ swap(T[j].P, T[j-1].P); swap(T[j].G, T[j-1].G); swap(T[j].Name, T[j-1].Name); } else if (T[j].P == T[j-1].P){ if (T[j].G > T[j-1].G){ swap(T[j].P, T[j-1].P); swap(T[j].G, T[j-1].G); swap(T[j].Name, T[j-1].Name); } else if (T[j].G == T[j-1].G){ if (strcmp(T[j].Name, T[j-1].Name) == -1){ swap(T[j].P, T[j-1].P); swap(T[j].G, T[j-1].G); swap(T[j].Name, T[j-1].Name); } else break; } else break; } else break; } } for (i = 1; i < 5; i++) printf("%s\n", T[i].Name); return 0; }