Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<fstream>
- #include<algorithm>
- std::ifstream f("fotbal.in");
- std::ofstream g("fotbal.out");
- int n, m, i, j, x, y, gx, gy;
- #define WIN 3
- #define DRAW 1
- std::pair<int, int>FinalRezult[6];
- struct Team{
- int nr, golaveraj, goluri_inscrise, puncte;
- }v[6];
- bool Customize(Team a, Team b)
- {
- if (a.puncte == b.puncte)
- if (a.golaveraj == b.golaveraj)
- return (a.goluri_inscrise >= b.goluri_inscrise);
- else
- return (a.golaveraj > b.golaveraj);
- else
- return (a.puncte > b.puncte);
- }
- void Setup()
- {
- for (i = 1; i <= n; i++)
- v[i].nr = i;
- }
- bool IsEqual(Team a, Team b)
- {
- if (a.puncte == b.puncte && a.golaveraj == b.golaveraj && a.goluri_inscrise == b.goluri_inscrise)
- return true;
- return false;
- }
- int main()
- {
- f >> n;
- m = (n - 1)*n / 2;
- for (i = 1; i <= m; i++)
- {
- f >> x >> y >> gx >> gy;
- if (gx > gy)
- v[x].puncte += WIN;
- else if (gx == gy)
- {
- v[x].puncte += DRAW;
- v[y].puncte += DRAW;
- }
- else
- v[y].puncte += WIN;
- v[x].goluri_inscrise += gx;
- v[y].goluri_inscrise += gy;
- v[x].golaveraj += gx - gy;
- v[y].golaveraj += gy - gx;
- }
- Setup();
- std::sort(v + 1, v + n + 1, Customize);
- for (i = 1; i <= n; i++)
- {
- if (i == 1 || !IsEqual(v[i], v[i - 1]))
- FinalRezult[v[i].nr].first = i;
- else
- FinalRezult[v[i].nr].first = FinalRezult[v[i - 1].nr].first;
- }
- for (i = n; i; i--)
- {
- if (i == n || !IsEqual(v[i], v[i + 1]))
- FinalRezult[v[i].nr].second = i;
- else
- FinalRezult[v[i].nr].second = FinalRezult[v[i + 1].nr].second;
- }
- for (i = 1; i <= n; i++)
- g << FinalRezult[i].first << " " << FinalRezult[i].second << "\n";
- f.close();
- g.close();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement