Cod sursa(job #2159002)

Utilizator HumikoPostu Alexandru Humiko Data 10 martie 2018 17:58:59
Problema Balanta Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.95 kb
#include <bits/stdc++.h>
#define nmax 1030

using namespace std;

ifstream fin ("balanta.in");
ofstream fout ("balanta.out");

int A[nmax], B[nmax], greu[nmax], usor[nmax], n, m, k, x, r, maxim, ans;

int main()
{
    ios::sync_with_stdio(false);
    fin.tie(0); fout.tie(0);
    maxim = -1000;
    fin>>n>>m;
    while ( m-- )
    {
        memset(A, 0, sizeof(A));
        memset(B, 0, sizeof(B));
        fin>>k;
        for ( int i = 1; i <= k; ++i )
        {
            fin>>x;
            A[x] = 1;
        }
        for ( int i = 1; i <= k; ++i )
        {
            fin>>x;
            B[x] = 1;
        }
        fin>>r;
        if ( r == 0 )
            for ( int i = 1; i <= n; ++i )
                    if ( A[i] || B[i] )
                        usor[i] = greu[i] = 0;
        if ( r == 1 )
            for ( int i = 1; i <= n; ++i )
            {
                if ( A[i] )
                {
                    greu[i]++;
                    usor[i] = 0;
                }
                if ( B[i] )
                {
                    usor[i]++;
                    greu[i] = 0;
                }
            }
        if ( r == 2 )
            for ( int i = 1; i <= n; ++i )
            {
                if ( A[i] )
                {
                    usor[i]++;
                    greu[i] = 0;
                }
                if ( B[i] )
                {
                    greu[i]++;
                    usor[i] = 0;
                }
            }
    }
    for ( int i = 1; i <= n; ++i )
    {
        if ( greu[i] > maxim )
        {
            maxim = greu[i];
            ans = i;
        }
        else
            if ( greu[i] == maxim )
                ans = 0;
        if ( usor[i] > maxim )
        {
            maxim = usor[i];
            ans = i;
        }
        else
            if ( usor[i] == maxim )
                ans = 0;
    }
    fout<<ans<<'\n';
}