#include #include #include #include using namespace std; #define P first #define G second ifstream fin("f.in"); unordered_map > M; int main() { string x, y; for (int i = 1, a, b; i <= 6; ++i) { fin >> x >> y >> a >> b; M[x].G += a; M[y].G += b; if (a > b) M[x].P += 3; if (b > a) M[y].P += 3; if (a == b) M[x].P++, M[y].P++; } int mxg, mxp; string mxs; mxg = mxp = 0; mxs = ""; for (auto i = M.begin(); i != M.end(); ++i) { if (mxp < (*i).G.P) mxp = (*i).G.P, mxs = (*i).P; if (mxp == (*i).G.P && mxg < (*i).G.G) mxg = (*i).G.G, mxs = (*i).P; if (mxp == (*i).G.P && mxg == (*i).G.G && mxs < (*i).P) mxs = (*i).P; } for (auto i = M.begin(); i != M.end(); ++i) if ((*i).P == mxs) {M.erase(i); break;} cout << mxs << '\n'; mxg = mxp = 0; mxs = ""; for (auto i = M.begin(); i != M.end(); ++i) { if (mxp < (*i).G.P) mxp = (*i).G.P, mxs = (*i).P; if (mxp == (*i).G.P && mxg < (*i).G.G) mxg = (*i).G.G, mxs = (*i).P; if (mxp == (*i).G.P && mxg == (*i).G.G && mxs < (*i).P) mxs = (*i).P; } for (auto i = M.begin(); i != M.end(); ++i) if ((*i).P == mxs) {M.erase(i); break;} cout << mxs << '\n'; mxg = mxp = 0; mxs = ""; for (auto i = M.begin(); i != M.end(); ++i) { if (mxp < (*i).G.P) mxp = (*i).G.P, mxs = (*i).P; if (mxp == (*i).G.P && mxg < (*i).G.G) mxg = (*i).G.G, mxs = (*i).P; if (mxp == (*i).G.P && mxg == (*i).G.G && mxs < (*i).P) mxs = (*i).P; } for (auto i = M.begin(); i != M.end(); ++i) if ((*i).P == mxs) {M.erase(i); break;} cout << mxs << '\n'; mxg = mxp = 0; mxs = ""; for (auto i = M.begin(); i != M.end(); ++i) { if (mxp < (*i).G.P) mxp = (*i).G.P, mxs = (*i).P; if (mxp == (*i).G.P && mxg < (*i).G.G) mxg = (*i).G.G, mxs = (*i).P; if (mxp == (*i).G.P && mxg == (*i).G.G && mxs < (*i).P) mxs = (*i).P; } for (auto i = M.begin(); i != M.end(); ++i) if ((*i).P == mxs) {M.erase(i); break;} cout << mxs << '\n'; }