Pagini recente » Cod sursa (job #2548836) | Cod sursa (job #1943971) | Cod sursa (job #2884230) | Cod sursa (job #2968013) | Cod sursa (job #94712)
Cod sursa(job #94712)
#include<fstream.h>
int N,M,st[1500],dr[1500],k,usor[1500],r,greu[1500],nr,poz,nr1,poz1;
int main(){
ifstream fin("balanta.in");
ofstream fout("balanta.out");
fin>>N>>M;
for (int i=0;i<M;i++){
fin>>k;
for (int j=0;j<k;j++)
fin>>st[j];
for (int l=0;l<k;l++)
fin>>dr[l]; //1=egal
fin>>r; //2=usor
if (r==0) //3=greu
for (int e=0;e<k;e++){
usor[st[e]]=1;
greu[st[e]]=1;
usor[dr[e]]=1;
greu[dr[e]]=1;
}
else
if (r==1){
for (int t=0;t<k;t++){
if (greu[dr[t]]!=1)
if (greu[dr[t]]==3)
greu[dr[t]]=1;
else
greu[dr[t]]=2;
if (usor[st[t]]!=1)
if (usor[st[t]]==2)
usor[st[t]]=1;
usor[st[t]]=3;}}
else
for (int w=0;w<k;w++){
if (greu[st[w]]!=1)
if (greu[st[w]]==2)
greu[st[w]]=1;
else
greu[st[w]]=3;
if (usor[dr[w]]!=1)
if (usor[dr[w]]==3)
usor[dr[w]]=1;
else
usor[dr[w]]=2;}
}
int us1=0,pus1=0,gr1=0,pgr=0;
for (int r=0;r<N;r++)
if (greu[r]==2){
us1++;
pus1=r+1;
}
else
if (greu[r]==3){
gr1++;
pgr=r+1;
}
if (us1==1&&gr1==0)
fout<<pus1;
else
if (us1==0&&gr1==1)
fout<<pgr;
else{
us1=0;
gr1=0;
for (int i=0;i<N;i++)
if (usor[i]==2){
us1++;
pus1=i+1;}
else
if (usor[i]==3){
gr1++;
pgr=i+1;
}
if (us1==1&&gr1==0)
fout<<pus1;
else
if (us1==0&&gr1==1)
fout<<pgr;
else
fout<<"0\n";
}
fout<<"\n";
fin.close();
fout.close();
return 0;
}