Cod sursa(job #1573827)

Utilizator DeanWinchesterdean winchester DeanWinchester Data 19 ianuarie 2016 22:54:28
Problema Balanta Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.64 kb
#include <iostream>
#include <cstdio>
using namespace std;
int n, m, i, j, k, s[1030], d[1030], su, sg1,sg2, s1,s2,x[1030];
bool  g[1030], u[1030];
int main()
{
    freopen("balanta.in", "r", stdin);
    freopen("balanta.out", "w", stdout);
    scanf("%d %d", &n, &m);
    for(i=1;i<=n;i++){
        g[i]=1;
        u[i]=1;
    }
    for(i=1;i<=m;i++){
        scanf("%d", &k);
        for(j=1;j<=k;j++){
            scanf("%d", &s[j]);
        }
        for(j=1;j<=k;j++){
            scanf("%d", &d[j]);
        }
        scanf("%d", &x[i]);



            if(x[i]==0){
                for(j=1;j<=k;j++){
                    u[s[j]]=0;
                    g[s[j]]=0;
                    u[d[j]]=0;
                    g[d[j]]=0;
                }
            }
            else{
                if(x[i]==1){
                    for(j=1;j<=k;j++){
                        u[s[j]]=0;
                        g[d[j]]=0;
                    }
                }
                else{
                    if(x[i]==2){
                        for(j=1;j<=k;j++){
                            u[d[j]]=0;
                            g[s[j]]=0;
                        }
                    }
                }
            }
}

    sg1=0;
    sg2=0;
    s1=0;
    s2=0;
    for(i=1;i<=n;i++){
        if(u[i]==1){
            s1++;
            sg1=i;
        }
        if(g[i]==1){
            s2++;
            sg2=i;
        }
    }
    if(s1==s2){
        printf("0");
        return 0;
    }
    if(s1==1){

        printf("%d", sg1);
        return 0;
    }
    else{
        if(s2==1){
        printf("%d",sg2);
        return 0;
        }

    }
    printf("0");
    return 0;
}