Cod sursa(job #2121240)

Utilizator eduardandrei20Nechifor Eduard Andrei eduardandrei20 Data 3 februarie 2018 14:43:31
Problema Balanta Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.8 kb
#include <iostream>
#include <stdio.h>
#define N 1030
#define int long long
using namespace std;

int P[N];
// 0 nu e luat in cacul
//1  pretendent
//2 NU E FALS
int st[N],dr[N];
int n ;
int PS[N];
 main()
{ int m ;
freopen("balanta.in","r",stdin);
cin>>n>>m;

for ( int i = 1 ; i <= m ; ++i)
{
    int locST, locDR, x , w;
    cin>>x;


    for ( int j = 1 ; j<=x ; ++j)
    {
       cin>>w;
        st[j]=w;
    }


  for ( int j = 1 ; j<=x ; ++j)
    {
        cin>>w;
        dr[j]=w;
    }


int k;
cin>>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;
 for(int j = 1 ; j <= x ; ++j)
        PS[st[j]]=2;
    for(int j = 1 ; j <= x ; ++j)
        PS[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;

        for( j=1 ; j<= x ;++j)
        PS[st[j]]=2;

  for( j=1 ; j<= x ;++j)
        if(PS[dr[j]]==2)continue;
        else PS[dr[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;

 for( j=1 ; j<= x ;++j)
        PS[dr[j]]=2;

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


}


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

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

if(okay==n-1){

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

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

if(okay==n-1){

    for(int i =1 ; i <= n ; ++i)
        if(PS[i] == 1 ) cout<<i;
return 0;
}

cout<<0;
    return 0;
}