Cod sursa(job #1848301)
| Utilizator | Data | 15 ianuarie 2017 19:27:59 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 90 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.62 kb |
#include<stdio.h>
int d[6000001],inc[6000001];
int main(){
int n,nr,i,poz,maxim;
freopen("ssm.in","r",stdin);
freopen("ssm.out","w",stdout);
scanf("%d",&n);
scanf("%d",&nr);
d[1]=nr;
inc[1]=1;
for(i=2;i<=n;i++){
scanf("%d",&nr);
if(d[i-1]+nr>nr){
d[i]=d[i-1]+nr;
inc[i]=inc[i-1];
}
else{
d[i]=nr;
inc[i]=i;
}
}
maxim=-1;
for(i=1;i<=n;i++)
if(d[i]>maxim){
maxim=d[i];
poz=i;
}
printf("%d %d %d",maxim,inc[poz],poz);
return 0;
}
