Cod sursa(job #1280528)

Utilizator StarGold2Emanuel Nrx StarGold2 Data 2 decembrie 2014 01:51:56
Problema Balanta Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 2.23 kb
#include <fstream>
using namespace std;

ifstream fin("balanta.in");
ofstream fout("balanta.out");

int n,m,k,t,c,ok,i,j,g, ok1, ok2;
int w[1025],x,v1[1025],v2[1025], y;

void caz1(int c){
    for(int i = 1; i <= c; i ++){
        if(w[v1[i]] == 1){
            ok1 = 0;
            return;
        }

    }
    return;
}

void caz2(int c){
    for(int i = 1; i <= c; i ++){
        if(w[v2[i]] == 1){
            ok1 = 0;
            return;
        }

    }
    return;
}


int main(){
    fin >> n >> m;
    for(i = 1; i <= n; i ++)
        w[i] = 1;
    for(k = 1; k <= m; k ++){
        fin >> c;
        for(i = 1; i <= c; i ++)
            fin >> v1[i];
        for(i = 1; i <= c; i ++)
            fin >> v2[i];
        fin >> t;
        if(t == 0){
            for(i = 1; i <= c; i ++)
                w[v1[i]] = 0;
                w[v2[i]] = 0;
        }
        //g = 1(mai grea)
        if(t == 1){//talerul din stanga mai greu
            if(g == 0){
                ok1 = 1;ok2 = 1;
                caz1(c);caz2(c);
                if(ok1 == 0 && ok2 == 1)
                    g = 1;
                else
                    if(ok1 == 1 && ok2 == 0)
                        g = 2;
            }
            if(g == 1){
                for(i = 1; i <= c; i ++)
                    w[v2[i]] = 0;
            }
            if(g == 2){
                for(i = 1; i <= c; i ++)
                    w[v1[i]] = 0;
            }
        }
        if(t == 2){
            if(g == 0){
                ok1 = 1;ok2 = 1;
                caz1(c);caz2(c);
                if(ok1 == 0 && ok2 == 1)
                    g = 1;
                else
                    if(ok1 == 1 && ok2 == 0)
                        g = 2;
            }
            if(g == 1){
                for(i = 1; i <= c; i ++)
                    w[v1[i]] = 0;
            }
            if(g == 2){
                for(i = 1; i <= c; i ++)
                    w[v2[i]] = 0;
            }
        }
    }
    x = 0;
    for(i = 1; i <= n; i ++)
        if(w[i] == 1){
            x ++;
            y = i;
            return 0;
        }
    if(x > 1)
        fout << 0;
    else
        fout << y;
    return 0;
}