Cod sursa(job #2046964)

Utilizator eduardandrei20Nechifor Eduard Andrei eduardandrei20 Data 24 octombrie 2017 12:56:21
Problema Balanta Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.32 kb
#include <iostream>
#include <stdio.h>
#define N 1025
using namespace std;

int P[N];
// 0 nu e luat in cacul
//1  pretendent
//2 NU E FALS
int st[1025],dr[1025];
int n ;

int main()
{ int m ;
freopen("balanta.in","r",stdin);
scanf("%d%d",&n,&m);

for ( int i = 1 ; i <= m ; ++i)
{
    int locST, locDR, x , w;
    scanf("%d",&x);


    for ( int j = 1 ; j<=x ; ++j)
    {
        scanf("%d",&w);
        st[j]=w;
    }


  for ( int j = 1 ; j<=x ; ++j)
    {
        scanf("%d",&w);
        dr[j]=w;
    }


int k;
scanf("%d",&k);
if(k == 0)
{
    for(int j = 1 ; j <= x ; ++j)
        P[st[j]]=2;
    for(int j = 1 ; j <= x ; ++j)
        P[dr[j]]=2;

}

else if( k == 1 )
{ int j ;
    for( j=1 ; j<= x ;++j)
        P[dr[j]]=2;

  for( j=1 ; j<= x ;++j)
        if(P[st[j]]==2)continue;
        else P[st[j]]=1;

}

else if ( k == 2)
{
    int j ;
    for( j=1 ; j<= x ;++j)
        P[st[j]]=2;

  for( j=1 ; j<= x ;++j)
        if(P[dr[j]]==2)continue;
        else P[dr[j]]=1;



}


}


int okay=0;
for ( int i = 1 ; i<= n ; ++i)
    if(P[i]!=1)okay++;


freopen("balanta.out","w",stdout);

    if(okay!=n-1) {
            printf("0");
    return 0;}


     for ( int j = 1 ; j<=n ; ++j)if(P[j]==1){printf("%d",j);
    return 0;}



    return 0;
}