Pagini recente » Cod sursa (job #2628917) | Cod sursa (job #979665) | Cod sursa (job #116451) | Cod sursa (job #1879699) | Cod sursa (job #80735)
Cod sursa(job #80735)
#include<stdio.h>
long a[200000],i,smax,x,y,sc,poz,nr,n;
int main(){
freopen("buline.in","r",stdin);
freopen("buline.out","w",stdout);
scanf("%ld",&n);
nr=0;
for(i=0;i<n;i++){
scanf("%ld%ld",&x,&y);
if(y==0)a[i]=-x;
else a[i]=x;
if(a[i]<0)nr++;
}
sc=0;smax=0;poz=0;x=0;y=0;
for(i=0;i<n;i++){
if(sc<0){
sc=a[i];
poz=i;
}
else sc+=a[i];
if(sc>smax){
smax=sc;
x=poz;
y=i;
}
}
if(sc>=0 && x!=0)
for(i=0;i<x && sc>=0;i++){
sc+=a[i];
if(sc>smax){
smax=sc;
x=poz;
y=i;
}
}
if(nr==n){
smax=a[0];x=0;y=0;
for(i=1;i<n;i++)
if(a[i]>smax){
smax=a[i];
x=i;
y=i;
}
}
x++;y++;
if(y<x)y=n-x+1+y;
printf("%ld %ld %ld\n",smax,x,y);
fclose(stdin);
fclose(stdout);
return 0;
}