Cod sursa(job #678873)

Utilizator ion_calimanUAIC Ion Caliman ion_caliman Data 12 februarie 2012 14:50:14
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include <fstream>
using namespace std;
ifstream f("ssm.in");
ofstream g("ssm.out");

#define Nmax 6000000
int A[Nmax], N, smax=1<<31, l, r;

int main()
{
    int i;
    f >> N;
    for (i=0; i<N; i++) f >> A[i];
    for (i=1; i<N; i++) A[i]+=A[i-1];

    int min = 0, best, t=0;
    l=0;
    r=0;
    for (i=0; i<N; i++){
        best = A[i] - min;
        if (A[i]<min) {
            min = A[i];
            t = i+1;
        }
        if (best > smax) {
            smax = best;
            l = t;
            r = i;
        }
    }
    if (l>r) l=r;
    g << smax << ' ' << l+1 << ' ' << r+1;
}