Cod sursa(job #3265470)

Utilizator dgrigaGriga Darius dgriga Data 30 decembrie 2024 14:09:45
Problema Subsecventa de suma maxima Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.62 kb
#include <fstream>
#include <iostream>

using namespace std;
ifstream f("ssm.in");
ofstream g("ssm.out");
int sp[6000001], mini[6000001], minipoz[6000001];
int main()
{
    int n, x, minic=0, pozc=0;
    f >> n;
    for(int i=1; i<=n; i++)
    {
        f >> x;
        sp[i]=sp[i-1]+x;
        if(sp[i]<minic)
            minic=sp[i], pozc=i;
        mini[i]=minic;
        minipoz[i]=pozc;
    }
    int ans=0, st=0, dr=0;
    for(int i=1; i<=n; i++)
    {
        if(sp[i]-mini[i]>ans)
            ans=sp[i]-mini[i], st=minipoz[i]+1, dr=i;
    }
    g << ans << " " << st << " " << dr;
    return 0;
}