Cod sursa(job #1895289)

Utilizator toadehuPuscasu Razvan Stefan toadehu Data 27 februarie 2017 21:20:47
Problema Subsecventa de suma maxima Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.84 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];
        v2[i]+=v1[i];
        if (marev<v2[i])
        {
            marev==v2[i];
            x=i;
        }
        if (v2[i]<0)
        {
            a=i+1;
            v2[i]=0;
        }
        else
        {
            v2[i]+=v1[i];
        }
        if (mare<v2[i])
        {
            b=i;
            mare=v2[i];
            //cout<<v2[i]<<"\n";
            a2=a;
            sol=1;
        }
    }
    if (sol==0)
    {
        fout<<marev<<" "<<x<<" "<<x;
    }
    fout<<mare;
    fout<<" "<<a2<<" "<<b;
}