Cod sursa(job #1545063)

Utilizator fanache99Constantin-Buliga Stefan fanache99 Data 6 decembrie 2015 15:06:25
Problema Balanta Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.54 kb
#include<cstdio>
using namespace std;
int heavy[1030],light[1030],left[1030],right[1030];
int main(){
    freopen("balanta.in","r",stdin);
    freopen("balanta.out","w",stdout);
    int n,m,i,q,k,result;
    scanf("%d%d",&n,&m);
    for(i=1;i<=n;i++)
        heavy[i]=light[i]=1;
    for(q=1;q<=m;q++){
        scanf("%d",&k);
        for(i=1;i<=k;i++)
            scanf("%d",&left[i]);
        for(i=1;i<=k;i++)
            scanf("%d",&right[i]);
        scanf("%d",&result);
        if(result==0)
            for(i=1;i<=k;i++){
                heavy[left[i]]--;
                heavy[right[i]]--;
                light[left[i]]--;
                light[right[i]]--;
            }
        if(result==1){
            for(i=1;i<=n;i++){
                heavy[i]--;
                light[i]--;
            }
            for(i=1;i<=k;i++)
                heavy[left[i]]++;
                light[right[i]]++;
        }
        if(result==2){
            for(i=1;i<=n;i++){
                heavy[i]--;
                light[i]--;
            }
            for(i=1;i<=k;i++)
                heavy[right[i]]++;
                light[left[i]]++;
        }
    }
    m=0;
    for(i=1;i<=n;i++)
        if(heavy[i]>0){
            m++;
            k=i;
        }
    if(m==1){
        printf("%d",k);
        return 0;
    }
    m=0;
    for(i=1;i<=n;i++)
        if(light[i]>0){
            m++;
            k=i;
        }
    if(m==1){
        printf("%d",k);
        return 0;
    }
    printf("0");
    return 0;
}