Cod sursa(job #1657941)

Utilizator DeehoroEjkoliPop Darian DeehoroEjkoli Data 20 martie 2016 21:45:28
Problema Balanta Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.74 kb
#include <fstream>
#include <vector>
#include <cmath>
#define nmax 1025
using namespace std;
ifstream fin("balanta.in");
ofstream fout("balanta.out");

struct bal_ {
    int value;
    bool not_;
} v[nmax];

int n, m;

void write_output() {
    bool is = false;
    int mx = 0, j;
    for (int i = 1; i <= n; ++i) {
        if (v[i].not_)
            continue;
        int now = abs(v[i].value);
        if (now == mx)
            is = true;
        else
            if (mx < now) {
                is = false;
                mx = now;
                j = i;
            }
    }
    if (is)
        fout << 0;
    else
        fout << j;
}

int main()
{
    fin >> n >> m;
    for (int i = 1; i <= m; ++i) {
        int x, y;
        fin >> x;
        vector < int > v1, v2;
        for (int j = 1; j <= x; ++j) {
            int k;
            fin >> k;
            v1.push_back(k);
        }
        for (int j = 1; j <= x; ++j) {
            int k;
            fin >> k;
            v2.push_back(k);
        }
        fin >> y;
        if (y == 0) {
            for (int u = 0; u <= v1.size() - 1; ++u)
                v[v1[u]].not_ = true;
            for (int u = 0; u <= v2.size() - 1; ++u)
                v[v2[u]].not_ = true;
        }
        if (y == 1) {
            for (int u = 0; u <= v1.size() - 1; ++u)
                ++v[v1[u]].value;
            for (int u = 0; u <= v2.size() - 1; ++u)
                --v[v2[u]].value;
        }
        if (y == 2) {
            for (int u = 0; u <= v1.size() - 1; ++u)
                --v[v1[u]].value;
            for (int u = 0; u <= v2.size() - 1; ++u)
                ++v[v2[u]].value;
        }
    }
    write_output();
    return 0;
}