Cod sursa(job #516155)
| Utilizator | Data | 23 decembrie 2010 12:05:42 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.64 kb |
#include<fstream>
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int a[6000001],s[6000001];
int main (){
int i,j,n,smax,imax,jmax,sc,smin,imin;
smax=INT_MIN;
fin>>n;
for(i=1;i<=n;i++){ fin>>a[i];
s[i]=s[i-1]+a[i];
}
smin=s[1];
imin=1;
for(i=2;i<=n;i++){
sc=s[i]-smin;
if(sc>smax){smax=sc;
imax=imin;
jmax=i;
}
if(s[i]<smin){smin=s[i];
imin=i;
}
}
fout<<smax<<" "<<imax+1<<" "<<jmax;
return 0;
}