Cod sursa(job #1910047)

Utilizator gabrielamoldovanMoldovan Gabriela gabrielamoldovan Data 7 martie 2017 15:18:24
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <iostream>
#include <fstream>

#define nmax 6000005
#define zeros(x) ((x^(x-1))&x)

using namespace std;

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

int a[nmax];
int n, x, y, m;

void citire()
{
    f>>n;
    for(int i=1; i<=n; ++i)
    {
        f>>a[i];
    }
}

void dynamic_programming()
{
    m=-int(2e9);
    int s=0, ind;
    for(int i=1; i<=n; ++i)
    {
        if(s<0)
        {
            ind=i;
            s=a[i];
        }
        else
        {
            s+=a[i];
        }
        if(m<s)
        {
            m=s;
            x=ind;
            y=i;
        }
    }
}

int main()
{
    citire();
    dynamic_programming();
    g<<m<<" "<<x<<" "<<y;
    return 0;
}