Pagini recente » Cod sursa (job #231482) | Cod sursa (job #14494) | Cod sursa (job #3273583) | Cod sursa (job #126839) | Cod sursa (job #25289)
Cod sursa(job #25289)
#include <fstream.h>
#include <math.h>
struct mon
{char ok;
int cmp;
};
mon v[1025];
int min,max,m,n,w[1025],xmin,xmax;
void comp(int k,int x)
{int i,j,ok;
if(x==2){for(i=1;i<=k;i++)
if(!v[w[i]].ok)v[w[i]].cmp--;
j=k*2;
for(i=k+1;i<=j;i++)
if(!v[w[i]].ok)v[w[i]].cmp++;
}
else {for(i=1;i<=k;i++)
if(!v[w[i]].ok)v[w[i]].cmp++;
j=k*2;
for(i=k+1;i<=j;i++)
if(!v[w[i]].ok)v[w[i]].cmp--;}
k=k*2;
if(k!=n)
for(i=1;i<=n;i++)
if(!v[i].ok)
{ok=1;
for(j=1;j<=k;j++)
if(w[j]==i){ok=0;break;}
if(ok)v[i].ok=1;
}
}
int main()
{ifstream f("balanta.in");
ofstream g("balanta.out");
f>>n>>m;
int i,j,k,x;
for(i=1;i<=m;i++)
{f>>k;
k=k*2;
for(j=1;j<=k;j++)
f>>w[j];
f>>x;
if(x)comp(k/2,x);
}
f.close();
char okx,okn;
for(i=1;i<=n;i++)
{if(!v[i].ok){if(v[i].cmp>max){okx=0;xmax=i;max=v[i].cmp;}
else if(v[i].cmp==max)okx=1;
else if(v[i].cmp<min){okn=0;xmin=i;min=v[i].cmp;}
else if(v[i].cmp==min)okn=1;
}
}
if(!okx){if(okn){g<<xmax<<'\n';g.close();return 0;}
else if(abs(max)>abs(min)){g<<xmax<<'\n';g.close();return 0;}
else if(abs(max)<abs(min)){g<<xmin<<'\n';g.close();return 0;}
else {g<<0<<'\n';g.close();return 0;}
}
else if(!okn){g<<xmin<<'\n';g.close();return 0;}
else {g<<0<<'\n';g.close();return 0;}
g.close();
return 0;
}