Pagini recente » Cod sursa (job #1455265) | Cod sursa (job #2767594) | Cod sursa (job #471790) | Cod sursa (job #105252) | Cod sursa (job #2546943)
#include <bits/stdc++.h>
#define DIM 1030
using namespace std;
ifstream fin("balanta.in");
ofstream fout("balanta.out");
int n,m,i,j,k,r,x;
bitset<DIM> g,u,st,dr;
int main() {
fin>>n>>m;
for (i=1;i<=n;i++)
u[i]=g[i]=1;
while (m--) {
st.reset(), dr.reset();
fin>>k;
for (i=1;i<=k;i++) {
fin>>x;
st[x]=1;
}
for (i=1;i<=k;i++) {
fin>>x;
dr[x]=1;
}
fin>>r;
if (r==0) {
for (i=1;i<=n;i++)
if (st[i]||dr[i]) //daca talerele sunt egale, monedele nu pot fi
u[i]=g[i]=0; //nici grele, nici usoare
}
else if (r==1) {
for (i=1;i<=n;i++) {
if (st[i])
u[i]=0;
if (dr[i])
g[i]=0;
if (!(st[i]||dr[i])) //daca nu au fost cantarite, inseamna ca moneda diferita
u[i]=g[i]=0; //este in cele cantarite
}
}
else {
for (i=1;i<=n;i++) {
if (st[i])
g[i]=0;
if (dr[i])
u[i]=0;
if (!(st[i]||dr[i])) //daca nu au fost cantarite, inseamna ca moneda diferita
u[i]=g[i]=0; //este in cele cantarite
}
}
}
if (u.count()==1&&g.count()==0) {
for (i=1;i<=n;i++)
if (u[i]==1) {
fout<<i;
return 0;
}
}
else if (u.count()==0&&g.count()==1) {
for (i=1;i<=n;i++)
if (g[i]==1) {
fout<<i;
return 0;
}
}
else
fout<<"-1";
return 0;
}