Cod sursa(job #1217037)

Utilizator ZenusTudor Costin Razvan Zenus Data 6 august 2014 15:03:49
Problema Balanta Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.16 kb
#include <cstdio>
#include <cstring>
#include <cmath>

using namespace std;

#define NMAX 1030

int ans,N,M,i,type,j,MAX;
bool no[NMAX];
bool is;
int A[NMAX],current[NMAX];

int main()
{
freopen("balanta.in","r",stdin);
freopen("balanta.out","w",stdout);

scanf("%d%d",&N,&M);

for (i=1;i<=M;++i)
{
    memset(A,0,sizeof(A));

    scanf("%d",&A[0]);

    for (j=1;j<=2*A[0];++j)
    scanf("%d",&A[j]);

    scanf("%d",&type);

    if (!type)
    {
        for (j=1;j<=2*A[0];++j)
        no[A[j]]=true;

        continue;
    }

    if (type==1)
    {
        for (j=1;j<=A[0];++j)
        {
            ++current[A[j]];
            --current[A[j+A[0]]];
        }

        continue;
    }

    for (j=1;j<=A[0];++j)
    {
        --current[A[j]];
        ++current[A[j+A[0]]];
    }
}

for (i=1;i<=N;++i)
{
    if (MAX<(int)fabs(1.0*current[i]) && !no[i])
    {
        is=false;
        MAX=(int)fabs(1.0*current[i]);
        ans=i;

        continue;
    }

    if (MAX==(int)fabs(1.0*current[i]))
    {
        is=true;
        MAX=0;
    }
}

(is) ? printf("0\n") : printf("%d\n",ans);

return 0;
}