Cod sursa(job #97555)

Utilizator RobytzzaIonescu Robert Marius Robytzza Data 7 noiembrie 2007 17:20:54
Problema Buline Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <fstream.h>
ifstream fin("buline.in");
ofstream fout("buline.out");
long a[200000],n;
void citire(){
fin>>n;
int smm;
for (long i=0;i<n;i++){
    fin>>a[i]>>smm;
    if (smm==0)
       a[i]*=-1;
    a[n+i]=a[i];}
fin.close();
}

void afisare(){
long inc=0,S=0,max=0,lg=1;
  for (long i=0;i<n+inc;i++){
     S+=a[i];
     if (S<0){
	S=0;
       inc=i+1;}
     if (S>max){
	max=S;
	lg=i-inc+1;}
  }
S=0;
long inc1=inc,k=0;
  for (long j=n+inc;j<2*n;j++){
  S+=a[j];
  if (S<0){
     S=0;
     inc1=j+1;
     }
  if (S>max) {
     max=S;
     lg=j-inc1+1;
     k=1;}
  }
  if (k==0)
fout<<max<<" "<<inc+1<<" "<<lg<<"\n";
else
  fout<<max<<" "<<inc1+1<<" "<<lg<<"\n";
}

int main(){
citire();
afisare();
fout.close();
return 0;
}