Cod sursa(job #999348)
Utilizator | Data | 19 septembrie 2013 23:16:51 | |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.56 kb |
#include <stdio.h>
#define NMax 6000005
#define INF 2000000000
int n;
int s[NMax];
int ssmV = 0, ssmP = 0;
int rez = -INF, rezSt, rezDr;
int main()
{
// freopen("ssm.in", "r", stdin);
//freopen("ssm.out", "w", stdout);
scanf("%d", &n);
int ss = 0;
for (int i = 1; i <= n; i++)
{
scanf("%d", &s[i]);
ss += s[i];
if (ss - ssmV > rez)
{
rez = ss - ssmV;
rezSt = ssmP + 1;
rezDr = i;
}
if (ssmV > ss)
{
ssmV = ss;
ssmP = i;
}
}
printf("%d %d %d\n", rez, rezSt, rezDr);
return 0;
}