Cod sursa(job #669992)
| Utilizator | Data | 28 ianuarie 2012 09:40:23 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 5 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.55 kb |
#include <cstdio>
using namespace std;
int n, smax, v[6000005], st, dr;
int main()
{
int i;
freopen ("ssm.in", "r", stdin);
freopen ("ssm.out", "w", stdout);
scanf ("%d", &n);
for (i = 1; i <= n; ++i)
scanf ("%d", &v[i]);
st = 1;
dr = 1;
for(i = 1; i <= n; ++i) {
if(smax + v[i] > v[i]) {
smax = smax + v[i];
++dr;
}
else {
st = i;
dr = i;
smax = v[i];
}
}
printf("%d %d %d", smax, st, dr);
return 0;
}
