Cod sursa(job #1769357)
| Utilizator | Data | 2 octombrie 2016 13:57:32 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.56 kb |
#include <cstdio>
using namespace std;
int main(){
freopen("ssm.in", "r", stdin);
freopen("ssm.out", "w", stdout);
int n, x, st, dr, sp, max, min, i, j;
scanf("%d", &n);
max = -(1LL << 31) + 1;
min = sp = 0;
j = 0;
for (i = 1; i <= n; i ++){
scanf("%d", &x);
sp += x;
if (sp - min > max){
max = sp - min;
st = j + 1; dr = i;
}
if (sp < min){
min = sp;
j = i;
}
}
printf("%d %d %d\n", max, st, dr);
return 0;
}
