Pagini recente » Cod sursa (job #1634060) | Cod sursa (job #1823437) | Cod sursa (job #2088274) | Cod sursa (job #1313927) | Cod sursa (job #2138278)
#include <fstream>
using namespace std;
ifstream fin("buline.in");
ofstream fout("buline.out");
int n,i,j,k,maxim,minim,r1,r2,r1m,r2m,pm,um,u,p,sum,summ,sumt,v[200200];
int main () {
fin>>n;
for (i=1;i<=n;i++) {
fin>>v[i]>>p;
sumt=sumt+v[i];
if (p==0)
v[i]=-v[i];
}
sum=v[1];
summ=v[1];
p=1;
pm=1;
um=1;
u=1;
for (i=1;i<=n;i++) {
if (sum+v[i]<v[i]) {
sum=v[i];
p=i;
u=i;
}
else {
sum=sum+v[i];
u++;
}
if (sum>maxim) {
maxim=sum;
r1=p;
r2=u-p+1;
}
if (summ+v[i]>v[i]) {
summ=v[i];
pm=i;
um=i;
}
else {
summ=summ+v[i];
um++;
}
if (summ>minim) {
minim=summ;
r1m=pm;
r2m=um-pm+1;
}
}
k=sumt-minim;
if (k>maxim) {
fout<<k<<" "<<r1m<<" "<<r2m-r1m+1;
return 0;
}
else {
fout<<maxim<<" "<<r1<<" "<<r2-r1+1;
return 0;
}
}