Cod sursa(job #2778039)

Utilizator vlad_lupuletiLupuleti Vlad Calin vlad_lupuleti Data 27 septembrie 2021 20:13:25
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.73 kb
#include <fstream>
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
long long i,j,n,a[6000005],x,d,p,vmax,s;
int main()
{
    fin>>n;
    for(i=1;i<=n;i++)
    {
        fin>>x;
        a[i]=x+a[i-1];
    }
    vmax=a[1];
    s=1;
    d=1;
    p=1;
    for(i=2;i<=n;i++)
    {
        if(a[i]-a[p]==vmax)
        {
            if(i-p<d-s+1)
            {
                s=p+1;
                d=i;
            }
        }
        if(a[i]-a[p]>vmax)
        {
            s=p+1;
            d=i;
            vmax=a[i]-a[p];
        }
        if(a[i]<a[p])
        {
            p=i;
        }

    }
    fout<<vmax<<" "<<s<<" "<<d;
    fin.close();
    fout.close();
    return 0;
}