Cod sursa(job #1366408)

Utilizator raluca1234Tudor Raluca raluca1234 Data 1 martie 2015 00:47:40
Problema Subsecventa de suma maxima Scor 35
Compilator cpp Status done
Runda Arhiva educationala Marime 0.86 kb
//SUBSECVENTA DE SUMA MAXIMA- CLASICA PROBLEMA
#include<iostream>
#include<fstream>
using namespace std;
int n,i,j,pozj,ii,isf,s[6000005],a[6000005];
long long smax,jmin;


int main()
{
    ifstream f("ssm.in");
    ofstream g("ssm.out");
    f>>n;
    s[0]=0;
    for (i=1; i<=n; i++){
        f>>a[i];
        s[i]=s[i-1]+a[i]; //calculez sumele pariale
    }
    smax=0;
    for (i=2; i<=n; i++)
    {
        //alfu j a.i. s[j] sa fie minim(j<i)
        jmin=100000;
        for (j=1; j<=i; j++)
            if (s[j]<jmin) {
                jmin=s[j];
                pozj=j;
            }
        if (s[i]-jmin>smax)
        {
            smax=s[i]-jmin;
            ii=pozj+1; //indice inceput
            isf=i; //indice sfarsit
        }
    }
    g<<smax<<" "<<ii<<" "<<isf<<'\n';


    f.close();
    g.close();
    return 0;
}