#include #include #include #include #include #include #include #include #include using namespace std; #pragma warning(push) #pragma warning(disable: 4996) int goluriEchipa1, goluriEchipa2; string numeEchipa1, numeEchipa2; struct Echipa { string nume; int goluri; int puncte; }; Echipa echipa1, echipa2, echipa3, echipa4; vector echipe; bool comparaEchipe(Echipa const &a, Echipa const &b) { if (a.puncte > b.puncte) { return true; } else if (a.puncte < b.puncte) { return false; } else // egale { if (a.goluri > b.goluri) return true; else if (a.goluri < b.goluri) return false; else // egale { if (a.nume < b.nume) return false; else return true; } } } int main() { freopen("test.in", "r", stdin); freopen("test.out", "w", stdout); echipa1.goluri = 0; echipa2.goluri = 0; echipa3.goluri = 0; echipa4.goluri = 0; // primele 2 linii sunt pt initializare cin >> echipa1.nume >> echipa2.nume >> goluriEchipa1 >> goluriEchipa2; echipa1.goluri = goluriEchipa1; echipa2.goluri = goluriEchipa2; if (goluriEchipa1 > goluriEchipa2) { echipa1.puncte = 3; echipa2.puncte = 0; } if (goluriEchipa1 < goluriEchipa2) { echipa1.puncte = 0; echipa2.puncte = 3; } if (goluriEchipa1 == goluriEchipa2) { echipa1.puncte = 1; echipa2.puncte = 1; } cin >> echipa3.nume >> echipa4.nume >> goluriEchipa1 >> goluriEchipa2; echipa3.goluri = goluriEchipa1; echipa4.goluri = goluriEchipa2; if (goluriEchipa1 > goluriEchipa2) { echipa3.puncte = 3; echipa4.puncte = 0; } if (goluriEchipa1 < goluriEchipa2) { echipa3.puncte = 0; echipa4.puncte = 3; } if (goluriEchipa1 == goluriEchipa2) { echipa3.puncte = 1; echipa4.puncte = 1; } for (int i = 0; i < 4; ++i) { cin >> numeEchipa1 >> numeEchipa2 >> goluriEchipa1 >> goluriEchipa2; if (goluriEchipa1 > goluriEchipa2) { if (echipa1.nume == numeEchipa1) { echipa1.goluri += goluriEchipa1; echipa1.puncte += 3; } if (echipa2.nume == numeEchipa1) { echipa2.goluri += goluriEchipa1; echipa2.puncte += 3; } if (echipa3.nume == numeEchipa1) { echipa3.goluri += goluriEchipa1; echipa3.puncte += 3; } if (echipa4.nume == numeEchipa1) { echipa4.goluri += goluriEchipa1; echipa4.puncte += 3; } // adaugam golurile pt echipa2 if (echipa1.nume == numeEchipa2) { echipa1.goluri += goluriEchipa2; } if (echipa2.nume == numeEchipa2) { echipa2.goluri += goluriEchipa2; } if (echipa3.nume == numeEchipa2) { echipa3.goluri += goluriEchipa2; } if (echipa4.nume == numeEchipa2) { echipa4.goluri += goluriEchipa2; } } if (goluriEchipa1 < goluriEchipa2) { // adaugam golurile pt echipa1 if (echipa1.nume == numeEchipa1) { echipa1.goluri += goluriEchipa1; } if (echipa2.nume == numeEchipa1) { echipa2.goluri += goluriEchipa1; } if (echipa3.nume == numeEchipa1) { echipa3.goluri += goluriEchipa1; } if (echipa4.nume == numeEchipa1) { echipa4.goluri += goluriEchipa1; } // updatam echipa2 if (echipa1.nume == numeEchipa2) { echipa1.goluri += goluriEchipa2; echipa1.puncte += 3; } if (echipa2.nume == numeEchipa2) { echipa2.goluri += goluriEchipa2; echipa2.puncte += 3; } if (echipa3.nume == numeEchipa2) { echipa3.goluri += goluriEchipa2; echipa3.puncte += 3; } if (echipa4.nume == numeEchipa2) { echipa4.goluri += goluriEchipa2; echipa4.puncte += 3; } } if (goluriEchipa1 == goluriEchipa2) { // adaugam golurile pt echipa1 if (echipa1.nume == numeEchipa1) { echipa1.goluri += goluriEchipa1; echipa1.puncte += 1; } if (echipa2.nume == numeEchipa1) { echipa2.goluri += goluriEchipa1; echipa2.puncte += 1; } if (echipa3.nume == numeEchipa1) { echipa3.goluri += goluriEchipa1; echipa3.puncte += 1; } if (echipa4.nume == numeEchipa1) { echipa4.goluri += goluriEchipa1; echipa4.puncte += 1; } // updatam echipa2 if (echipa1.nume == numeEchipa2) { echipa1.goluri += goluriEchipa2; echipa1.puncte += 1; } if (echipa2.nume == numeEchipa2) { echipa2.goluri += goluriEchipa2; echipa2.puncte += 1; } if (echipa3.nume == numeEchipa2) { echipa3.goluri += goluriEchipa2; echipa3.puncte += 1; } if (echipa4.nume == numeEchipa2) { echipa4.goluri += goluriEchipa2; echipa4.puncte += 1; } } } echipe.push_back(echipa1); echipe.push_back(echipa2); echipe.push_back(echipa3); echipe.push_back(echipa4); // sortam dupa puncte sort(echipe.begin(), echipe.end(), comparaEchipe); cout << echipe[0].nume << endl; cout << echipe[1].nume << endl; cout << echipe[2].nume << endl; cout << echipe[3].nume << endl; return 0; } #pragma warning(pop)