Pagini recente » Cod sursa (job #375321) | Cod sursa (job #1165716) | Cod sursa (job #1660261) | Cod sursa (job #865748) | Cod sursa (job #1208890)
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream f("balanta.in");
ofstream g("balanta.out");
int vizG[1025], vizU[1025], n, m, i, j, k, r, st[1025], dr[1025], greu = 0, usor = 0, solG=0,solU=0,sol=0;
f >> n >> m;
for (i = 1; i <= n; ++i) vizU[i] = vizG[i] =1;
for (i = 1; i <= m; ++i)
{
f >> k;
for (j = 1; j <= k; ++j) f >> st[j];
for (j = 1; j <= k; ++j) f >> dr[j];
f >> r;
if (r == 0)
{
for (j = 1; j <= k; ++j) vizU[st[j]] = vizU[dr[j]] = vizG[st[j]] = vizG[dr[j]]=0;
}
else if (r == 1)
{
for (j = 1; j <= k; ++j)
{
if(vizU[dr[j]]==1) vizU[dr[j]] = 2;
if(vizG[st[j]]==1) vizG[st[j]] = 2;
}
for (j = 1; j <= n; j++)
{
if (vizU[j] != 2) vizU[j] = 0;
else vizU[j] = 1;
if (vizG[j] != 2) vizG[j] = 0;
else vizG[j] = 1;
}
}
else
{
for (j = 1; j <= k; ++j)
{
if(vizU[st[j]]==1) vizU[st[j]] = 2;
if(vizG[dr[j]]==1) vizG[dr[j]] = 2;
}
for (j = 1; j <= n; j++)
{
if (vizU[j] != 2) vizU[j] = 0;
else vizU[j] = 1;
if (vizG[j] != 2) vizG[j] = 0;
else vizG[j] = 1;
}
}
}
for (i = 1; i <= n; ++i)
{
if (vizU[i] == 1)
{
++usor;
if (usor == 1) solU = i;
}
if (vizG[i] == 1)
{
++greu;
if (greu == 1) solG = i;
}
}
if (usor + greu == 1)
{
g << solG + solU;
}
else g << 0;
f.close();
g.close();
return 0;
}