Cod sursa(job #2189494)

Utilizator mariusn01Marius Nicoli mariusn01 Data 28 martie 2018 14:41:17
Problema Balanta Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.69 kb
#include <fstream>
using namespace std;
int n,m,i,j,gr[1025],us[1025],VER,k,sol,x,v1[1025],v2[1025];
int main (){
    ifstream fin ("balanta.in");
    ofstream fout ("balanta.out");
    fin>>n>>m;
    for (i=1;i<=n;i++){
        gr[i]=1;
        us[i]=1;
    }
    for (i=1;i<=m;i++){
        fin>>k;

        for (j=1;j<=n;j++)
            v1[j] = v2[j] = 0;

        for (j=1;j<=k;j++){
            fin>>x;
            v1[x]=1;
        }
        for (j=1;j<=k;j++){
            fin>>x;
            v2[x]=1;
        }
        fin>>VER;
        if (VER==1)
            for (j=1;j<=n;j++){
                if (v1[j] == 1)
                    us[j] = 0;
                if (v2[j] == 1)
                    gr[j] = 0;
                if (v1[j] == 0 && v2[j] == 0)
                    us[j] = gr[j] = 0;
            }
        else
            if (VER==2)
                for (j=1;j<=n;j++){
                    if (v1[j] == 1)
                        gr[j] = 0;
                    if (v2[j] == 1)
                        us[j] = 0;
                    if (v1[j] == 0 && v2[j] == 0)
                        us[j] = gr[j] = 0;
                }
            else
                for (j=1;j<=n;j++){
                    if (v1[j] == 1 || v2[j] == 1)
                    us[j] = gr[j] = 0;
                }

    }

    for (i=1;i<=n;i++) {
        if (us[i] == 1) {
            sol++;
            k = i;
        }
        if (gr[i] == 1) {
            sol++;
            k = i;
        }
    }
    if (sol == 1)
        fout<<k;
    else
        fout<<0;
}
/*
   1 2 3 4 5 6 7 8
us 0 0 0 0 1 1 1 1
gr 0 0 1 1 0 0 0 0

8 3
4 1 2 3 4 5 6 7 8 1
1 1 2 0
1 3 4 2
*/