Cod sursa(job #877011)

Utilizator CostanMiriamCostan Miriam CostanMiriam Data 12 februarie 2013 14:38:51
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <fstream>
using namespace std;
ifstream fin ("ssm.in");
ofstream fout ("ssm.out");
int n,i,p,u,maxim,pmax,umax;
int v[6000000] , d[6000000];
int main () {

    fin >> n;
    for (i=1;i<=n;i++)
        fin>>v[i];
    d[1]=v[1];
    maxim=d[1];
    pmax=1;umax=1;
    p=1;u=1;
    for (i=2;i<=n;i++) {
       if (v[i] + d[i-1] >= v[i]) {
            d[i] = v[i]+d[i-1];
       } else {
            d[i] = v[i];
            p = i;
       }
       if (d[i] > maxim) {
            maxim = d[i];
            pmax = p;
            umax = i;
       } else
            if (d[i] == maxim)
                if (p == pmax && i<umax)
                    umax = i;
    }
    fout <<maxim<<" "<<pmax<<" "<<umax<<"\n";

    return 0;
}