Pagini recente » Cod sursa (job #2879655) | Cod sursa (job #316668) | Cod sursa (job #1376318) | Cod sursa (job #988349) | Cod sursa (job #26119)
Cod sursa(job #26119)
#include <stdio.h>
#define fin "buline.in"
#define fout "buline.out"
#define Nmax 200001
int N,s[Nmax],smax,pmax,lmax;
int main() {
int i,min,pmin,ptmp,ltmp;
int max,pmx,c;
freopen(fin,"r",stdin); freopen(fout,"w",stdout);
pmin=0; min=0;
scanf("%i",&N);
for (i=1;i<=N;++i) {
scanf("%i%i",&s[i],&c);
if (c==0) s[i]*=-1;
s[i]+=s[i-1];
}
//for (i=1;i<=N;++i) fprintf(stderr,"%i ",s[i]);
for (i=1;i<=N;++i) {
if (s[i]-min>smax) {
smax=s[i]-min;
pmax=pmin+1;
lmax=i-pmin;
}
if (s[i]<min) {
min=s[i];
pmin=i;
}
}
max=0; pmx=0;
for (i=1;i<=N;++i) {
if (max+s[N]-s[i-1]>smax) {
smax=max+s[N]-s[i-1];
pmax=i;
lmax=pmx+N-i+1;
}
else
if (max+s[N]-s[i-1]==smax)
lmax=pmx+N-i+1;
if (s[i]>max) {
max=s[i];
pmx=i;
}
}
printf("%i %i %i\n",smax,pmax,lmax);
fclose(stdin); fclose(stdout);
return 0;
}