Cod sursa(job #1778446)
| Utilizator | Data | 13 octombrie 2016 20:01:21 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.61 kb |
#include <cstdio>
using namespace std;
const int INF = 2000000000;
int main()
{
freopen("ssm.in", "r", stdin);
freopen("ssm.out", "w", stdout);
int n, s, smax, x, st, stm, drm;
scanf("%d", &n);
s = smax = -INF;
for (int i = 1; i <= n; ++i)
{
scanf("%d", &x);
if (s < 0)
{
s = x;
st = i;
}
else
s = s + x;
if (s > smax)
{
smax = s;
stm = st;
drm = i;
}
}
printf("%d %d %d\n", smax, stm, drm);
return 0;
}
