Cod sursa(job #825373)

Utilizator ctraulChicinas T. Raul ctraul Data 28 noiembrie 2012 22:20:34
Problema Subsecventa de suma maxima Scor 95
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
using namespace std;
#define maxx 6000000
#include <fstream>
int DP[maxx],x[maxx],s,s1,f1,f,n,maxi;
int main()
{

    ofstream fout("ssm.out");
    ifstream fin("ssm.in");

    fin>>n;
    for (int i=1;i<=n;i++)
    {
        fin>>x[i];
    }
    for (int i=1;i<=n;i++)
    {
        if (x[i]>DP[i-1]+x[i])
        {
            DP[i]=x[i];
            s=f=i;
        }
        else
        {
            DP[i]=DP[i-1]+x[i];
            f++;
        }
        if (DP[i]>maxi)
        {
            maxi=DP[i];
            s1=s;
            f1=f;
        }
    }
    fout<<maxi<<' '<<s1<<' '<<f1;
    fin.close();
    fout.close();
    return 0;
}