Cod sursa(job #1485845)

Utilizator enedumitruene dumitru enedumitru Data 13 septembrie 2015 10:07:06
Problema Party Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.04 kb
#include<fstream>
#define NMAX 101
#define MMAX 1001
using namespace std;
ifstream f("party.in"); ofstream g("party.out");
struct cerinta {int x,y,z;} A[NMAX];
int P[MMAX];
int N,M,ok,i,X,Y,Z,Cnt;
int main()
{    f>>N>>M;
     for (i = 1; i <= N; i++) P[i] = 1;
     for (i = 1; i <= M; i++) f>>A[i].x>>A[i].y>>A[i].z;
     ok = 0;
     while (ok == 0)
     {  ok = 1;
        for (i = 1; i <= M; i++)
        {   X = A[i].x, Y = A[i].y, Z = A[i].z;
            if (Z == 0)
                    if (P[X] == 0 && P[Y] == 0) { P[X] = 1; P[Y] = 1; ok = 0; break;}
              if (Z == 1)
                    if (P[X] == 0 && P[Y] != 0) { P[Y] = 0; ok = 0; break; }
              if (Z == 2)
                    if (P[Y] == 0 && P[X] != 0) { P[X] = 0; ok = 0; break; }
              if (Z == 3)
                    if (P[X] == 1 && P[Y] == 1) { P[Y] = 0; ok = 0; break;}
          }
     }
    for (i = 1; i <= N; i++)
        if (P[i]) Cnt++;
    g<<Cnt<<'\n';
    for(i=1;i<=N;i++) if(P[i]) g<<i<<'\n';
    g.close(); return 0;
}