Cod sursa(job #1488529)

Utilizator BlaugranasEnal Gemaledin Blaugranas Data 19 septembrie 2015 10:05:20
Problema Balanta Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.9 kb
#include<cstdio>
#include<algorithm>
using namespace std;
int n,m,a[515],b[515],h[1030],l[1030],i,k,t,j,e,c[515],d[515];
int main() {
    freopen("balanta.in","r",stdin),freopen("balanta.out","w",stdout),scanf("%d%d",&n,&m);
    for(i=1;i<=n;i++)
        h[i]=l[i]=1;
    while(m--) {
        scanf("%d",&k);
        for(i=1;i<=k;i++)
            scanf("%d",a+i);
        for(i=1;i<=k;i++)
            scanf("%d",b+i);
        a[k+1]=b[k+1]=n+1,sort(a+1,a+k+2),sort(b+1,b+k+2),scanf("%d",&t);
        if(!t)
            for(i=1;i<=k;i++)
                h[a[i]]=h[b[i]]=l[a[i]]=l[b[i]]=0;
        else if(t==1) {
            for(i=j=1;i<=n;)
            if(h[i])
                if(a[j]==i)
                    h[i++]=1,j++;
                else if(a[j]<i)
                    j++;
                else
                    h[i++]=0;
            else
                h[i++]=0;
            for(i=j=1;i<=n;)
            if(l[i])
                if(b[j]==i)
                    l[i++]=1,j++;
                else if(b[j]<i)
                    j++;
                else
                    l[i++]=0;
            else
                l[i++]=0;
        }
        else {
            for(i=j=1;i<=n;)
            if(h[i])
                if(b[j]==i)
                    h[i++]=1,j++;
                else if(b[j]<i)
                    j++;
                else
                    h[i++]=0;
            else
                h[i++]=0;
            for(i=j=1;i<=n;)
            if(l[i])
                if(a[j]==i)
                    l[i++]=1,j++;
                else if(a[j]<i)
                    j++;
                else
                    l[i++]=0;
            else
                l[i++]=0;
        }
    }
    for(j=e=0,i=1;i<=n;i++) {
        if(h[i])
            c[++j]=i;
        if(l[i])
            d[++e]=i;
    }
    printf("%d",j==1&&!e?c[1]:(!j&&e==1?d[1]:0));
}