Cod sursa(job #1895300)

Utilizator toadehuPuscasu Razvan Stefan toadehu Data 27 februarie 2017 21:26:18
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.9 kb
#include <fstream>

using namespace std;

int v1[6000010],v2[6000010],a,b,a2,sol,x;

int main()
{
    ifstream fin ("ssm.in");
    ofstream fout ("ssm.out");
    int n,mare=-230023781,marev=-230023781;
    fin>>n;
    for (int i=1;i<=n;++i)
    {
        fin>>v1[i];
        v2[i]=v2[i-1];
        if (marev<v1[i])
        {
            marev=v1[i];
            x=i;
        }
        if (v2[i]+v1[i]<0)
        {
            a=i+1;
            v2[i]=0;
        }
        else
        {
            v2[i]+=v1[i];
        }
        if (mare<v2[i])
        {
            b=i;
            a2=a;
            if (a2<=b)
            {
            mare=v2[i];
            //cout<<v2[i]<<"\n";
            sol=1;
            }
        }
    }
    if (sol==0)
    {
        fout<<marev<<" "<<x<<" "<<x;
    }
    else
    {
    fout<<mare;
    fout<<" "<<a2<<" "<<b;
    }
}