Pagini recente » Cod sursa (job #188300) | Istoria paginii runda/simulare_preoji | Cod sursa (job #1690180) | Monitorul de evaluare | Cod sursa (job #271930)
Cod sursa(job #271930)
#include<fstream.h>
int n,i,semn,v[200010],s[200010],p1,p2,l1,min,pmin,max,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];
}
max=-20000;
min=0; pmin=0;
for(i=1;i<=n;i++)
{ if(s[i]-min>max) { max=s[i]-min; p1=pmin+1; l1=i-p1+1;}
if(s[i]<min) {min=s[i]; pmin=i;}
}
smax=max; min=20000; max=0; pmax=0;
for(i=1;i<=n;i++)
{ if(s[i]-max<min) { min=s[i]-max; p2=pmax+1;}
if(s[i]>max) {max=s[i]; pmax=i;}
}
smin=min;
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;
}