Pagini recente » Cod sursa (job #2499818) | Cod sursa (job #73200)
Cod sursa(job #73200)
#include<fstream.h>
long a[400000],x,y,N,S,in,lg,max=-10211431,b[400000],c[400000],d[400000];
void citire(){
ifstream fin("buline.in");
fin>>N;
for (long i=0;i<N;i++){
fin>>x>>y;
if (y==0)
a[i]=(-1)*x;
else
a[i]=x; }
fin.close();
}
void maxim(){
long S1=0,max1=-1254320,max2=-1463214;
for (long c=0;c<N;c++)
{ S1+=a[c];
b[c]=S1;
if (b[c]>max2) {
for (long f=c;f<N;f++){
c[f]=b[c];
d[f]=c;}
max=b[c];}
}
for (long i=0;i<N;i++){
if (s<0) {
s=a[i];
lg1=1; }
else {
s+a[i];
lg1++}
if (S>max){
max=S:
lg=lg1;
sf=i;}}
in=sf-lg;
if (c[N-lg]>0){
max++[N-lg];
lg+=d[N-lg];}
}
int main(){
ofstream fout("buline.out");
citire();
maxim();
fout<<max<<" "<<in+1<<" "<<lg<<"\n";
fout.close();
return 0;
}