Pagini recente » Cod sursa (job #1101628) | Cod sursa (job #574703) | Cod sursa (job #2277913) | Cod sursa (job #1741010) | Cod sursa (job #1333675)
#include<bits/stdc++.h>
using namespace std;
ifstream fin("balanta.in");
ofstream fout("balanta.out");
const int oo=1<<30;
const int NMAX=1050;
int n,m,l,a[NMAX],b[NMAX],len[NMAX],ans[NMAX],z[NMAX],t[NMAX];
int mat1[NMAX][NMAX],mat2[NMAX][NMAX];
bool ok;
inline void SOLVE(int c[NMAX][NMAX],int d[NMAX][NMAX],int e[NMAX])
{
int i,j;
for (i=1;i<=m;i++)
{
if (ans[i]==0)
{
for (j=1;j<=len[i];j++) e[c[i][j]]=-oo;
for (j=1;j<=len[i];j++) e[d[i][j]]=-oo;
}
else
{
if (ans[i]==1)
{
for (j=1;j<=len[i];j++) e[c[i][j]]=-oo;
for (j=1;j<=len[i];j++) e[d[i][j]]++;
}
if (ans[i]==2)
{
for (j=1;j<=len[i];j++) e[d[i][j]]=-oo;
for (j=1;j<=len[i];j++) e[c[i][j]]++;
}
}
}
}
int main()
{
int i,j,cnt=0,cnt1=0,poz=0,poz1=0;
fin>>n>>m;
for (i=1;i<=m;i++)
{
fin>>len[i];
for (j=1;j<=len[i];j++) fin>>mat1[i][j];
for (j=1;j<=len[i];j++) fin>>mat2[i][j];
fin>>ans[i];
if (ans[i]!=0) l++;
}
SOLVE(mat1,mat2,z);
SOLVE(mat2,mat1,t);
for (i=1;i<=n;i++)
{
if (z[i]==l) {poz=i;cnt++;}
if (t[i]==l) {poz1=i;cnt1++;}
}
if (cnt==1 && cnt1==1) {fout<<"0\n";return 0;}
if (cnt==1) fout<<poz<<"\n";
else if (cnt1==1) fout<<poz1<<"\n";
else fout<<"0\n";
return 0;
}