Cod sursa(job #1516072)

Utilizator Julian.FMI Caluian Iulian Julian. Data 2 noiembrie 2015 18:05:35
Problema Balanta Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.5 kb
#include <iostream>
#include <fstream>
#define nmax 1080

using namespace std;
ifstream fin("balanta.in");
ofstream fout("balanta.out");
int v[nmax],a[nmax],nsig[nmax];

int main()
{int n,m,i,k,m1,m2,mp,mn,k2,num2,r,num;
    fin>>n>>m;
    while(m--)
    {fin>>k;
    m1=0;
   for(i=1;i<=k;i++)
        {fin>>a[i];
         if(v[a[i]]>m1)
            m1=v[a[i]];}
    m2=0;
    for(i=1;i<=k;i++)
        {fin>>a[k+i];
         if(v[a[k+i]]>m2)
         m2=v[a[k+i]];
        }

    fin>>r;

    if(r==0)
        for(i=1;i<=k;i++)
        { v[a[i]]=0; v[a[k+i]]=0;
         nsig[a[i]]=nsig[a[i+k]]=1;
        }
    else if(r==1)
        {
            for(i=1;i<=k;i++)
            if(!nsig[a[i]])
                v[a[i]]++;
            for(i=1;i<=k;i++)
            if(!nsig[a[i+k]])
                v[a[i+k]]--;

        }
    else {
            for(i=1;i<=k;i++)
            if(!nsig[a[i+k]])
                v[a[i+k]]++;
            for(i=1;i<=k;i++)
            if(!nsig[a[i]])
                  v[a[i]]--;
        }


    }

    mp=v[1];k=1;num=1;
    for(i=2;i<=n;i++)
    if(v[i]>mp){mp=v[i];num=i;k=1;}
        else if(v[i]==mp)k++;

    mn=v[1];k2=1;num2=1;
    for(i=2;i<=n;i++)
    if(v[i]<mn){mn=v[i];num2=i;k2=1;}
        else if(v[i]==mn)k2++;



    if(-mn==mp)fout<<0;
    else
        if(-mn>mp)
            if(k2==1)fout<<num2;
                else fout<<0;
         else
            if(k==1)fout<<num;
                else fout<<0;


}