Cod sursa(job #2547870)

Utilizator teisanumihai84Mihai Teisanu teisanumihai84 Data 15 februarie 2020 19:48:26
Problema Balanta Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 2.31 kb
#include <fstream>
using namespace std;
int v[1025], st[1025], dr[1025], n, m, i, j, sol, val, k, x, r;
int main ()
{
    ifstream fin ("balanta.in");
    ofstream fout ("balanta.out");
    fin>>n>>m;
    for (i=1; i<=m; i++)
    {
        fin>>k;
        for (j=1; j<=n; j++)
        {
            st[j]=0;
            dr[j]=0;
        }
        for (j=1; j<=k; j++)
        {
            fin>>x;
            st[x]=1;
        }
        for (j=1; j<=k; j++)
        {
            fin>>x;
            dr[x]=1;
        }
        fin>>r;
        if (r==0) {
            for (j=1; j<=n; j++)
                if (st[j]== 1|| dr[j]==1)
                    v[j]=-1;
        }
                else
                if (r==1)
                    for (j=1; j<=n; j++)
                    {
                        if (st[j]==1 && v[j]!=-1)
                        {

                            if (v[j]==1)
                                v[j]=-1;
                            else
                                v[j]=2;
                        }
                        if (dr[j]==1 && v[j]!=-1)
                        {
                            if (v[j]==2)
                                v[j]=-1;
                            else
                                v[j]=1;
                        }
                        if (st[j]==0 && dr[j]==0)
                            v[j]=-1;
                    }
                else
                    for (j=1; j<=n; j++)
                    {
                        if (dr[j]==1 && v[j]!=-1)
                        {
                            if (v[j]==1)
                                v[j]=-1;
                            else
                                v[j]=2;
                        }
                        if (st[j]==1 && v[j]!=-1)
                        {
                            if (v[j]==2)
                                v[j]=-1;
                            else
                                v[j]=1;
                        }
                        if (st[j]==0 && dr[j]==0)
                            v[j]=-1;
                    }
    }
    for (i=1; i<=n; i++)
        if (v[i]==-1)
            sol++;
        else
            val=i;
    if (sol==n-1)
        fout<<val;
    else
        fout<<0;
}