Cod sursa(job #2872253)

Utilizator RobertlelRobert Robertlel Data 16 martie 2022 17:15:31
Problema Subsecventa de suma maxima Scor 60
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.62 kb
#include <iostream>
#include <fstream>
using namespace std;
int v[6000007],s[600007],n,i,start,stop,maxim;

ifstream f("ssm.in");
ofstream g("ssm.out");
int main()
{
    f>>n;
    for(i=1;i<=n;i++)
        f>>v[i];
    for(i=1;i<=n;i++)
    {
        if(v[i]>v[i]+s[i-1])
            s[i]=v[i];
        else
            s[i]=v[i]+s[i-1];
    }
    for(i=1;i<=n;i++)
        if(s[i]>maxim)
        maxim=s[i],stop=i;
    g<<maxim;
    for(i=stop;i>=1;i--)
    {
        if(s[i]-v[i]==s[i-1])
            start=i-1;
            else
                break;
    }
    g<<" "<<start<<" "<<stop;
    return 0;
}