Cod sursa(job #2000890)

Utilizator rexlcdTenea Mihai rexlcd Data 14 iulie 2017 23:28:36
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include <iostream>
#include <fstream>

using namespace std;

long dp[6000002];

int main()
{
    ifstream f("ssm.in");
    ofstream g("ssm.out");
    int n;
    f>>n;
    for(int i=1;i<=n;i++)
    {
        int x; f>>x;
        dp[i]=dp[i-1]+x;
    }
    int j=0,x=1,y=1;
    long vmax=dp[1];
    for(int i=1;i<=n;i++)
    {
        if(dp[i]-dp[j]>vmax)
        {
            vmax=dp[i]-dp[j];
            x=j+1,y=i;
        }
        if(dp[i]<dp[j])
        {
            j=i;
        }
    }
    g<<vmax<<" "<<x<<" "<<y<<'\n';
    f.close();
    g.close();
    return 0;
}