Cod sursa(job #2766592)
| Utilizator | Data | 2 august 2021 14:10:03 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 90 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.55 kb |
#include <cstdio>
using namespace std;
int n, a[6000000], stmax=0, drmax=0;
int main() {
freopen("ssm.in", "r", stdin);
freopen("ssm.out", "w", stdout);
scanf("%d", &n);
for(int i=0;i<n;i++)
scanf("%d", &a[i]);
long long ans = a[0];
long long cur = (a[0]>=0)?a[0]:0;
int stcur = (a[0]>=0)?0:1;
for(int i=1;i<n;i++) {
cur += a[i];
if(cur>ans) {
ans = cur;
stmax = stcur;
drmax = i;
}
if(cur<0) {
stcur = i+1;
cur = 0;
}
}
printf("%lld %d %d", ans, stmax+1, drmax+1);
return 0;
}