Cod sursa(job #2345720)

Utilizator Vasilescu_CosminVasilescu Cosmin Vasilescu_Cosmin Data 16 februarie 2019 17:11:24
Problema Subsecventa de suma maxima Scor 60
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.86 kb
#include <bits/stdc++.h>

using namespace std;
ifstream  in ("ssm.in");
ofstream out ("ssm.out");

long long v[6000000],v2[6000000],n,i,maxim,st,dr,max2,cc;

int main()
{
    in>>n;
    for(i=1; i<=n; i++)
    {
        in>>v[i];
        v2[i]=v2[i-1]+v[i];
        if(i==1)
        {
            maxim=v2[i];
            dr=i;
            cc=i;
            max2=v[i];
        }
        else if(v[i]>max2)
        {
            cc=i;
            max2=v[i];
        }
        else if(v2[i]>=maxim)
        {
            maxim=v2[i];
            dr=i;
        }
    }
    st=1;
    for(i=1; i<dr; i++)
    {
        if((v2[dr]-v2[i])>maxim)
        {
            st=i+1;
            maxim=v2[dr]-v2[i];
        }
    }
    if(maxim>max2)
        out<<maxim<<" "<<st<<" "<<dr;
    else
        out<<max2<<" "<<cc<<" "<<cc;
    return 0;
}