Cod sursa(job #2059859)
Utilizator | Data | 7 noiembrie 2017 18:10:01 | |
---|---|---|---|
Problema | Balanta | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 2.23 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin ("balanta.in");
ofstream fout ("balanta.out");
int a[1025],b[1025],m,n,st[513],dr[513],k,i,r,nra,nrb,x,rez1,rez2;
bool ok;
int main()
{
fin >>n>>m;
for(int M=1; M<=m; M++)
{
fin >> k;
for(i=1; i<=k; i++)
fin >> st[i];
for(i=1; i<=k; i++)
fin >> dr[i];
fin >> r;
if(r==0)
{
for(i=1; i<=k; i++)
{
a[st[i]]=1;
a[dr[i]]=1;
b[st[i]]=1;
b[dr[i]]=1;
}
}
else if(r==1)
{
for(i=1; i<=n; i++)
{
ok=1;
for(int j=1; j<=k; j++)
{
if(i==st[j] || i==dr[j])
{
ok=0;
break;
}
}
if(ok==1)
{
a[i]=1;
b[i]=1;
}
}
for(i=1; i<=k; i++)
{
a[dr[i]]=1;
}
for(i=1; i<=k; i++)
{
b[st[i]]=1;
}
}
else if(r==2)
{
for(i=1; i<=n; i++)
{
ok=1;
for(int j=1; j<=k; j++)
{
if(i==dr[j] || i==st[j])
{
ok=0;
break;
}
}
if(ok==1)
{
a[i]=1;
b[i]=1;
}
}
for(i=1; i<=k; i++)
{
a[st[i]]=1;
}
for(i=1; i<=k; i++)
{
b[dr[i]]=1;
}
}
}
nra=0;
nrb=0;
for(i=1; i<=n; i++)
{
if(a[i]==0)
{
nra++;
rez1=i;
}
if(b[i]==0)
{
nrb++;
rez2=i;
}
}
if(nra == 1 && nrb == 1)
fout << 0;
else if(nra==1)
fout<< rez1;
else if(nrb==1)
fout<< rez2;
else fout <<0;
}