Cod sursa(job #2770766)

Utilizator AlexSerban21Serban Alexandru AlexSerban21 Data 23 august 2021 10:11:45
Problema Balanta Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 2.37 kb
#include <fstream>
using namespace std;
ifstream fin ("balanta.in");
ofstream fout ("balanta.out");
int n,t,i,r,j,k,a,ok,maxc,fr[1025],s[1025],v1[1025],v2[1025];
int main()
{
    fin>>n>>t;
    for (j=1; j<=t; j++)
    {
        fin>>k;
        for (i=1; i<=k; i++)
            fin>>v1[i];
        for (i=1; i<=k; i++)
            fin>>v2[i];
        fin>>r;
        if (r==0)
        {
            for (i=1; i<=k; i++)
            {
                fr[v1[i]]=-2;
                s[v1[i]]=0;
            }
            for (i=1; i<=k; i++)
            {
                fr[v2[i]]=-2;
                s[v2[i]]=0;
            }
        }
        else if (r==1)
        {
            for (i=1; i<=k; i++)
            {
                if (fr[v1[i]]==1||fr[v1[i]]==0)
                {
                    fr[v1[i]]=1;
                    s[v1[i]]++;
                }
                else
                {
                    fr[v1[i]]=-2;
                    s[v1[i]]=0;
                }
            }
            for (i=1; i<=k; i++)
            {
                if (fr[v2[i]]==-1||fr[v2[i]]==0)
                {
                    fr[v2[i]]=-1;
                    s[v2[i]]++;
                }
                else
                {
                    fr[v2[i]]=-2;
                    s[v2[i]]=0;
                }
            }
        }
        else if (r==2)
        {
            for (i=1; i<=k; i++)
            {
                if (fr[v1[i]]==-1||fr[v1[i]]==0)
                {
                    fr[v1[i]]=-1;
                    s[v1[i]]++;
                }
                else
                {
                    fr[v1[i]]=-2;
                    s[v1[i]]=0;
                }
            }
            for (i=1; i<=k; i++)
            {
                if (fr[v2[i]]==1||fr[v2[i]]==0)
                {
                    fr[v2[i]]=1;
                    s[v2[i]]++;
                }
                else
                {
                    fr[v2[i]]=-2;
                    s[v2[i]]=0;
                }
            }
        }
    }
    for (i=1; i<=n; i++)
    {
        if (s[i]>maxc)
        {
            maxc=s[i];
            a=i;
            ok=0;
        }
        else if (s[i]==maxc)
            ok=1;
    }
    if (ok==0)
        fout<<a;
    else
        fout<<0;
    return 0;
}