Cod sursa(job #1333367)

Utilizator chiriacandrei25Chiriac Andrei chiriacandrei25 Data 3 februarie 2015 00:53:02
Problema Balanta Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.92 kb
#include <cstdio>
#define INF 2000000000

using namespace std;

int main()
{
    int n,m,cnt,val,rez,k,a[3000],posgreu[3000],posusor[3000],i,decisive=0,cnt1;
    freopen ("balanta.in","r",stdin);
    freopen ("balanta.out","w",stdout);
    scanf("%d%d", &n,&m);
    for(i=1;i<=n;++i) posgreu[i]=posusor[i]=0;
    while(m--)
    {
        scanf("%d", &k);
        for(i=1;i<=2*k;++i) scanf("%d", &a[i]);
        scanf("%d", &rez);
        if(!rez)
            for(i=1;i<=2*k;++i) posgreu[a[i]]=posusor[a[i]]=-INF;
        else
        {
            ++decisive;
            if(rez==1)
            {
                for(i=1;i<=k;++i)
                    posgreu[a[i]]++;
                for(i=k+1;i<=2*k;++i)
                    posgreu[a[i]]=-INF;
                for(i=k+1;i<=2*k;++i)
                    posusor[a[i]]++;
                for(i=1;i<=k;++i)
                    posusor[a[i]]=-INF;
            }
            else
            {
                for(i=k+1;i<=2*k;++i)
                    posgreu[a[i]]++;
                for(i=1;i<=k;++i)
                    posgreu[a[i]]=-INF;
                for(i=1;i<=k;++i)
                    posusor[a[i]]++;
                for(i=k+1;i<=2*k;++i)
                    posusor[a[i]]=-INF;
            }
        }
    }
    for(i=1,cnt=cnt1=0;i<=n;++i)
    {
        if(posgreu[i]==decisive) ++cnt;
        if(posusor[i]==decisive) ++cnt1;
    }
    if(cnt==1 && cnt1==1)
    {
        printf("0\n");
        return 0;
    }
    for(i=1,cnt=0;i<=n;++i)
        if(posgreu[i]==decisive)
        {
            ++cnt;
            val=i;
        }
    if(cnt==1)
        printf("%d\n", val);
    else
    {
        for(i=1,cnt=0;i<=n;++i)
            if(posusor[i]==decisive)
            {
                ++cnt;
                val=i;
            }
        if(cnt==1) printf("%d\n", val);
        else printf("0\n");
    }
    return 0;
}