Cod sursa(job #701531)
Utilizator | popa camil popacamil | Data | 1 martie 2012 16:22:37 |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 60 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.47 kb |
#include<cstdio>
using namespace std;
long long int i,n,v[600005],minim,maxim=-100000000,pozmin,pozmax,k;
int main(){
freopen("ssm.in","r",stdin);
freopen("ssm.out","w",stdout);
scanf("%lld",&n);
v[0]=0;
minim=0;
for(i=1;i<=n;++i){
scanf("%lld",&v[i]);
v[i]+=v[i-1];
if(v[i]-minim>maxim){
maxim=v[i]-minim;
pozmax=i;pozmin=k+1;
}
if(v[i]<minim){
minim=v[i];
k=i;
}
}
printf("%lld %lld %lld",maxim,pozmin,pozmax);
return 0;
}