Cod sursa(job #1454339)

Utilizator bogdan.balanBogdan Balan bogdan.balan Data 26 iunie 2015 10:25:00
Problema Balanta Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.65 kb
#include <cstdio>
using namespace std;

int l[1025], h[1025];
int aux_l[1025], aux_h[1025];

int main()
{

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

    int n, m, k, ok, i, j, ok2;

    scanf("%d%d",&n,&m);
    for( i = 1; i <= n; ++i ){
            h[i] = 1;
            l[i] = h[i];
    }
    for( i = 1; i <= m; ++i ){
        scanf("%d",&k);
        for( j = 1; j <= k; ++j ) scanf("%d",&aux_l[j]);
        for( j = 1; j <= k; ++j ) scanf("%d",&aux_h[j]);
        scanf("%d",&ok);
        if( ok == 0 ){
            for( j = 1; j <= k; ++j ) l[aux_l[j]]--;
            for( j = 1; j <= k; ++j ) l[aux_h[j]]--;

            for( j = 1; j <= k; ++j ) h[aux_l[j]]--;
            for( j = 1; j <= k; ++j ) h[aux_h[j]]--;
        }
        else {
                if( ok == 1 )
                    for( j = 1; j <= k; ++j ){
                        h[aux_l[j]]++;
                        l[aux_h[j]]++;
                    }
                else if( ok == 2 )
                    for( j = 1; j <= k; ++j ){
                        h[aux_h[j]]++;
                        l[aux_l[j]]++;
                    }

                for( j = 1; j <= n; ++j ){
                    l[j]--;
                    h[j]--;
                }
        }
    }

    ok = 0; ok2 = 0;

    for( i = 1; i <= n; ++i ){
        if( l[i] >= 1 ) ok++;
        if( h[i] >= 1 ) ok2++;
    }

    if( ok == 1 ){
        for( i = 1; i <= n; ++i ) if( l[i] >= 1 ) printf("%d",i);
    }
    else if( ok2 == 1 ){
        for( i = 1; i <= n; ++i ) if( h[i] >= 1 ) printf("%d",i);
    }
    else printf("0");

    return 0;
}