Pagini recente » Cod sursa (job #1369254) | Cod sursa (job #163795) | Cod sursa (job #169720) | Cod sursa (job #1391432) | Cod sursa (job #1466907)
#include <iostream>
#include <fstream>
using namespace std;
int a[1000][3], n, m;
bool v[100]={0};
void Conditie(int i)
{
int var = 0, x1, x2, j;
bool cond = false;
x1 = a[i][0] - 1;
x2 = a[i][1] - 1;
while (cond == false)
{
var++;
switch (a[i][2])
{
case 0: if (v[x1] || v[x2]) cond = true; else cond = false; break;
case 1: if ((v[x1] && v[x2]) || (v[x1] && !v[x2]) || (!v[x1] && !v[x2])) cond = true; else cond = false; break;
case 2: if (v[x1] || v[x2]) cond = true; else cond = false; break;
case 3: if (!v[x1] || !v[x2]) cond = true; else cond = false; break;
}
if (var == 2 || var == 4) v[x1] = !v[x1];
else if (var == 3) {v[x1] = !v[x1]; v[x2] = !v[x2];}
}
if (var == 1 && i + 1 < m) Conditie(i+1);
else if (var != 1) Conditie(0);
}
main()
{
ifstream f1("test.in");
ofstream f2("test.out");
int i, k = 0;
f1 >> n >> m;
for (i = 0; i < m; i++)
f1 >> a[i][0] >> a[i][1] >> a[i][2];
for (i = 0; i < 100; i++)
v[i] = true;
Conditie(0);
for (i = 0; i < n; i++)
if (v[i] == true) k++;
f2 << k << "\n";
for (i = 0; i < n; i++)
if (v[i] == true) f2 << i + 1 << "\n";;
}