Pagini recente » Cod sursa (job #514782) | Cod sursa (job #806022) | Clasamentul arhivei de probleme | Cod sursa (job #813245) | Cod sursa (job #2345688)
#include <stdio.h>
#include <climits>
using namespace std;
FILE *f,*g;
int WhiteOrBlack(int a,int A)
{
if(!A)return -a;
return a;
}
void SolveProblemNigga()
{
long long BestSum=-INT_MAX,i=1,Sum=-1,X,Y,N,l=0;
int Pos,p=1,O,fp,Across;
fscanf(f,"%lld",&N);
for(i=1;p<=2&&i<=2*N;i++)
{
if(i>N&&p<2){
f=fopen("buline.in","r");fscanf(f,"%d",&O);++p;
}
fscanf(f,"%lld %lld",&X,&Y);
X=WhiteOrBlack(X,Y);
if(Sum<0)
{
Sum=X;l=1;fp=i;
if(p>1)break;
}
else
Sum+=X,l++;
if(i-N==fp)break;
if(Sum>BestSum) BestSum=Sum,Across=l,Pos=i-l+1;
else
if(BestSum==Sum&&l<Across)Across=l;
}
fprintf(g,"%lld %d %d",BestSum,Pos,Across);
}
int main()
{
f=fopen("buline.in","r");g=fopen("buline.out","w");
SolveProblemNigga();
fclose(f);
fclose(g);
return 0;
}