Cod sursa(job #617282)

Utilizator zloteanu.adrianzloteanu adrian nichita zloteanu.adrian Data 14 octombrie 2011 15:13:13
Problema Party Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include<stdio.h>
#include<stdlib.h>
using namespace std;
int ma[1001][3],v[101];
inline int ver(int i)
    {if(ma[i][2]==0)//sau 1?
        return v[ma[i][0]]||v[ma[i][1]];
    else if(ma[i][2]==1)
        return v[ma[i][0]]||!v[ma[i][1]];
    else if(ma[i][2]==2)
        return v[ma[i][1]]||!v[ma[i][0]];
    else if(ma[i][2]==3)
        return v[ma[i][0]]+v[ma[i][1]]!=2;
    return 1;}
int main()
{    int n,m,i,nr=0;
    freopen("party.in","r",stdin);
    freopen("party.out","w",stdout);
    scanf("%d%d",&n,&m);
    for(i=1; i<=m; i++)
      scanf("%d%d%d",&ma[i][0],&ma[i][1],&ma[i][2]);
    for(i=1; i<=n; i++)
      v[i]=1;
    while(1)
       {for(i=1; i<=m; i++)
         if(!ver(i))
          break;
        if(i==m+1)
         break;}
    for(i=1; i<=n; i++)
        if(v[i])
          nr++;
    printf("%d",nr);
    for(i=1; i<=n; i++)
        if(v[i])
         printf("\n%d",i);
    return 0;}