Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "utils.PRO2"
- #include <vector>
- #include <algorithm>
- struct Equipo {
- int id, puntos, gFavor, gContra;
- };
- struct Result {
- int golesI, golesJ;
- };
- typedef vector<vector<Result> > Results;
- void readResults(Results& r, int n) {
- for (int i = 0; i < n; ++i) {
- for (int j = 0; j < n; ++j) {
- r[i][j].golesI = readint();
- r[i][j].golesJ = readint();
- }
- }
- }
- void inicializarEquipos(vector<Equipo>& equipos, int n) {
- for(int i = 0; i < n; ++i) {
- equipos[i].id = i+1;
- equipos[i].puntos = 0;
- equipos[i].gFavor = 0;
- equipos[i].gContra = 0;
- }
- }
- void calcularPuntos(vector<Equipo>& clasif, const Results& results, int n) {
- for(int i = 0; i < n; ++i) {
- for(int j = 0; j < n; ++j) {
- if(i != j) {
- clasif[i].gFavor += results[i][j].golesI;
- clasif[i].gContra += results[i][j].golesJ;
- clasif[j].gFavor += results[i][j].golesJ;
- clasif[j].gContra += results[i][j].golesI;
- if(results[i][j].golesI > results[i][j].golesJ) {
- clasif[i].puntos += 3;
- } else if(results[i][j].golesI < results[i][j].golesJ) {
- clasif[j].puntos += 3;
- } else {
- ++clasif[i].puntos;
- ++clasif[j].puntos;
- }
- }
- }
- }
- }
- bool compare (const Equipo& a, const Equipo& b) {
- if (a.puntos != b.puntos){
- return a.puntos > b.puntos;
- } else {
- int difA = a.gFavor-a.gContra;
- int difB = b.gFavor-b.gContra;
- if (difA != difB) {
- return difA > difB;
- } else {
- return a.id < b.id;
- }
- }
- }
- void printClasificacion(const vector<Equipo>& clasif, int n) {
- for(int i = 0; i < n; ++i) {
- cout << clasif[i].id << " " << clasif[i].puntos << " " << clasif[i].gFavor << " " << clasif[i].gContra << endl;
- }
- }
- int main() {
- int n = readint();
- Results results(n, vector<Result>(n));
- readResults(results, n);
- vector<Equipo> clasif(n);
- inicializarEquipos(clasif, n);
- calcularPuntos(clasif, results, n);
- sort(clasif.begin(), clasif.end(), compare);
- printClasificacion(clasif, n);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement