Pagini recente » Cod sursa (job #797199) | Cod sursa (job #2754396) | Cod sursa (job #1655648) | Cod sursa (job #1568000) | Cod sursa (job #271932)
Cod sursa(job #271932)
#include<fstream.h>
int n,i,semn,v[200010],s[200010],p1,p2,l1,min1,pmin,max1,pmax,smax,smin,stot;
int main()
{
ifstream f("buline.in");
ofstream g("buline.out");
f>>n;
for(i=1;i<=n;i++)
{f>>v[i]>>semn;
if(semn==0) v[i]=-v[i];
s[i]=v[i]+s[i-1];
}
max1=-20000; min1=0; pmin=0;
for(i=1;i<=n;i++)
{ if(s[i]-min1>max1) { max1=s[i]-min1; p1=pmin+1; l1=i-p1+1;}
if(s[i]<min1) {min1=s[i]; pmin=i;}
}
smax=max1;
min1=20000; max1=0; pmax=0;
for(i=1;i<=n;i++)
{
if(s[i]-max1<min1) { min1=s[i]-max1; p2=pmax+1;}
if(s[i]>max1) {max1=s[i]; pmax=i;}
}
smin=min1;
stot=s[n];
if(stot==smin) g<<smax<<" "<<p1<<" "<<l1;
else
if(stot-smin>smax) g<<stot-smin<<" "<<p1<<" "<<l1+p2-1;
else g<<smax<<" "<<p1<<" "<<l1;
f.close();
g.close();
return 0;
}