Cod sursa(job #880539)

Utilizator Ionut228Ionut Calofir Ionut228 Data 16 februarie 2013 21:39:58
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include<fstream>

using namespace std;

ifstream f("ssm.in");
ofstream g("ssm.out");

int n,m,s,ii,jj,v[6000001],best[6000001];

int main ()
{
    int i;
    f>>n;
    f>>v[1];
    best[1]=v[1];
    m=best[1];
    ii=1;
    jj=1;
    for(i=2;i<=n;i++)
    {
        f>>v[i];
        if(v[i]+best[i-1]>v[i])
            best[i]=best[i-1]+v[i];
        else
            best[i]=v[i];
        if(best[i]>m)
        {
            m=best[i];
            jj=i;
        }
    }
    s=0;
    for(i=jj;i>=1;i--)
    {
        s=s+v[i];
        if(s==m)
            ii=i;
    }
    g<<m<<" "<<ii<<" "<<jj;
    f.close();g.close();
    return 0;
}