Cod sursa(job #2351129)

Utilizator SqueekDanielTodasca Daniel SqueekDaniel Data 21 februarie 2019 23:33:13
Problema Party Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <bits/stdc++.h>

#define MAXN  105
#define MAXM 1005

int N, M, X[MAXM], Y[MAXM],
    Colour[MAXM], Ans[MAXN];

std::ifstream In ("party.in");
std::ofstream Out("party.out");

void Init() {
    srand(time(NULL));
}

void Citire() {
    In >> N >> M;
    for (int i=1; i<=M; ++i)
        In >> X[i] >> Y[i] >> Colour[i];
}

void Rezolvare() {
    bool check = true;
    while (check) {
        check = false;
        for (int i=1, val; i<=M; ++i) {
            val = (Ans[X[i]]<<1) + Ans[Y[i]];
            if (val == Colour[i]) {
                if (rand()&1) Ans[X[i]] = 1-Ans[X[i]];
                else Ans[Y[i]] = 1-Ans[Y[i]];

                check = true;
                i = M+5;
            }
        }
    }

    int Count = 0;
    for (int i=1; i<=N; ++i)
        Count += Ans[i];

    Out << Count << '\n';
    for (int i=1; i<=N; ++i)
        if (Ans[i])
            Out << i << '\n';
}

int main()
{
    Init();
    Citire();
    Rezolvare();

    return 0;
}