Pagini recente » Cod sursa (job #2935306) | Cod sursa (job #2796913) | Cod sursa (job #2644200) | Cod sursa (job #1254559) | Cod sursa (job #2134274)
#include <iostream>
#include <stdio.h>
using namespace std;
FILE *f,*g;
int n,m;
int v[400002];
void citire()
{ int i,x,y;
fscanf(f,"%d",&n);
m=n;
for(i=1;i<=n;i++)
{
fscanf(f,"%d %d",&x,&y);
if(y==0)
x*=-1;
v[i]=x;
}
n*=2;
for(i=m+1;i<=n;i++)
v[i]=v[i-m];
}
void ssm()
{
int sum_int=0, suma_optima=-9999999, i,li,lf,poz_int;
for(i=1;i<=n;i++)
{
if(sum_int<0)
{
sum_int=v[i];
poz_int=i;
}
else
sum_int+=v[i];
if(sum_int>suma_optima && i-poz_int<=m)
{
suma_optima=sum_int;
li=poz_int;
lf=i;
}
}
fprintf(g,"%d %d %d",suma_optima,li,lf-li+1);
}
int main()
{
f=fopen("buline.in","r");
g=fopen("buline.out","w");
citire();
ssm();
fclose(f);
fclose(g);
return 0;
}