Cod sursa(job #670000)

Utilizator SchumiDumitru Andrei Georgian Schumi Data 28 ianuarie 2012 09:46:56
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include <cstdio>

using namespace std;

int n, smax, v[6000005], st, dr, maxim = -0x3f3f3f3f, stmax, drmax;

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];
        }
	if(smax > maxim) {
	    stmax = st;
            drmax = dr;
	    maxim = smax;
 	}
    }
    printf("%d %d %d", maxim, stmax, drmax);
    return 0;
}