Cod sursa(job #1573306)

Utilizator razvandraghiciDraghici Razvan razvandraghici Data 19 ianuarie 2016 16:41:47
Problema Balanta Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.6 kb
#include <fstream>

using namespace std;
int n, m, i, j, u[1025], g[1025], st[1025], dr[1025], k, x, nr, t, ok;
int main()
{
    ifstream fin("balanta.in");
    ofstream fout("balanta.out");
    fin>>n>>m;
    for(i=1;i<=n;i++){
        u[i]=1;
        g[i]=1;
    }
    for(i=1;i<=m;i++){
        fin>>k;
        for(j=1;j<=k;j++)
            fin>>st[j];
        for(j=1;j<=k;j++)
            fin>>dr[j];
        fin>>x;
        if(x==0)
            for(j=1;j<=k;j++){
                u[st[j]]=0;
                u[dr[j]]=0;
                g[st[j]]=0;
                g[dr[j]]=0;
            }
        else{
            for(j=1;j<=n;j++){
                for(t=1;t<=k;t++){
                    if(j==st[t] || j==dr[t])
                        ok=1;
                }
                if(ok==0){
                    u[j]=0;
                    g[j]=0;
                }
                else
                    ok=0;
            }
            if(x==1){
                for(j=1;j<=k;j++){
                    u[st[j]]=0;
                    g[dr[j]]=0;
                    }
                }
            else{
                for(j=1;j<=k;j++){
                    g[st[j]]=0;
                    u[dr[j]]=0;
                }
            }
        }
        for(j=1;j<=k;j++)
            st[j] = dr[j] = 0;
    }
    for(i=1;i<=n;i++){
        if((u[i]==1 && nr==0) || (g[i]==1 && nr==0) && (u[i]!=g[i])){
            fout<<i;
            return 0;
        }
        if(u[i]==1 || g[i]==1){
            fout<<0;
            return 0;
        }
    }
    return 0;
}