Cod sursa(job #876979)

Utilizator CostanMiriamCostan Miriam CostanMiriam Data 12 februarie 2013 14:13:07
Problema Subsecventa de suma maxima Scor 95
Compilator cpp Status done
Runda Arhiva educationala Marime 0.92 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];
    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];
            u=i;
        }else{
            if (v[i]+d[i-1]<v[i]) {
                d[i]=v[i];
                p=i;
                u=i;
            }else
                if (i<p){
                    d[i]=v[i]+v[i-1];
                    u=i;
                }else {
                    d[i]=v[i];
                    p=i;
                    u=i;

                }
        }
        if (d[i]>maxim) {
            maxim=d[i];
            pmax=p;
            umax=u;
        }
    }
    fout <<maxim<<" "<<pmax<<" "<<umax;

    return 0;
}