Cod sursa(job #1879929)
| Utilizator | Data | 15 februarie 2017 11:39:15 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.48 kb |
#include<bits/stdc++.h>
#define N 6000020
using namespace std;
int n, a[N], i, dp[N], s=-90000000, bg, b=1, e;
int main(){
freopen("ssm.in", "r", stdin);
freopen("ssm.out", "w", stdout);
scanf("%d", &n);
for(i=1;i<=n;i++) {
scanf("%d", &a[i]);
dp[i]=a[i];
}
dp[0]=0;
for(i=1;i<=n;i++){
if(dp[i-1] < 0){
b=i;
}else dp[i]+=dp[i-1];
if(s<dp[i]){
s=dp[i];
bg=b;
e=i;
}
}
printf("%d ", s);
printf("%d %d", bg, e);
return 0;
}
