Pagini recente » Cod sursa (job #2773612) | Cod sursa (job #2650538) | Cod sursa (job #873449) | Cod sursa (job #2499526) | Cod sursa (job #166392)
Cod sursa(job #166392)
#include<stdio.h>
#include<limits.h>
long n, v[400002], max=INT_MIN, min=INT_MAX, sum, pix, pin, pi, pfx, pfn, pf;
void citire()
{
freopen("buline.in","r",stdin);
freopen("buline.out","w",stdout);
scanf("%ld", &n);
long i, j, s;
for (i=1; i<=n; i++)
{
scanf ("%ld %ld",&v[i],&s);
if (s==0) v[i]*=(-1);
v[i + n] = v[i];
}
}
void suma()
{
long sc, i, pi, pf;
sc=v[1];
pi=pf=1;
max=sc;
for (i=2; i<= 2 * n; i++)
{
if (sc<=0) { pf=i-1; pi=i; sc=v[i];}
else sc+=v[i];
if (i - pi + 1 > n) {i = pi + 1; sc = -1;}
else if (sc>max ) { max=sc; pix=pi; pfx=i;}
}
printf("%ld %ld %ld",max, pix, pfx - pix + 1);
}
int main()
{
citire();
suma();
return 0;
}