Pagini recente » Cod sursa (job #1324810) | Cod sursa (job #1451375) | Cod sursa (job #497190) | Cod sursa (job #1135062) | Cod sursa (job #1673694)
#include <fstream>
#include <iostream>
using namespace std;
#define MAX 1025
int main()
{
fstream f("balanta.in",ios::in);
ofstream g("balanta.out");
int N,M,k,state,i,nr=0,ok=0,answer,Max=-1;
int stateArray[MAX],groupFirst[MAX],groupSecond[MAX],weight[MAX];
f>>N>>M;
for(i=1;i<=N;++i)weight[i]=0;
do
{
f>>k;
for(i=1;i<=k;++i)
{
f>>nr;
groupFirst[i]=nr;
}
for(i=1;i<=k;++i)
{
f>>nr;
groupSecond[i]=nr;
}
f>>state;
if(state==0)
for(i=1;i<=k;++i)
{
stateArray[groupFirst[i]]=1;
stateArray[groupSecond[i]]=1;
}
else if(state==1)
for(i=1;i<=k;++i)
{
++weight[groupFirst[i]];
--weight[groupSecond[i]];
}
else if(state==2)
for(i=1;i<=k;++i)
{
--weight[groupFirst[i]];
++weight[groupSecond[i]];
}
}while(--M);
nr=0;
for(i=1;i<=N;++i)
{
if(stateArray[i]==0)
{
++nr;
if(nr==1)answer=i;
}
}
if(nr==1)
{
g<<answer;
return 0;
}
for(i=1;i<=N;++i)
{
if(stateArray[i]==0)
{
if(weight[i]<0)weight[i]=weight[i]*(-1);
if(weight[i]>Max)
{
Max=weight[i];
ok=1;
answer=i;
}
else if(weight[i]==Max)ok=0;
}
}
if(ok && stateArray[answer]==0)g<<answer;
else g<<0;
return 0;
}