Cod sursa(job #2864317)

Utilizator Seress26Seres Artur Seress26 Data 7 martie 2022 19:30:41
Problema Subsecventa de suma maxima Scor 5
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.92 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
#define NMAX 6000001
///SSM
using namespace std;
ifstream f("ssm.in");
ofstream g("ssm.out");
int n,m,v[NMAX];
vector <int> dp(NMAX);
void Citire()
{
    f>>n;
    for(int i=1;i<=n;i++)
        f>>v[i];
}
void Rezolvare()
{
    int t,p;
    dp[1]=v[1];
    for(int i=2;i<=n;i++)
    {
        if(dp[i-1]>=0)
            dp[i]=dp[i-1]+v[i];
        else
        {
            dp[i]=v[i];
        }
    }
    int sol=dp[1];
    for(int i=2;i<=n;i++)
    {
        if(dp[i]>sol)
            sol=dp[i];
    }
    g<<sol<<' ';
    sol=dp[1];
    int ok=0;
    for(int i=2;i<=n;i++)
    {
        if(dp[i]<sol&&ok==0)
        {
            p=i;
            ok=1;
        }
        if(dp[i]>sol)
            t=i;
    }
    g<<p+1<<' ';
    g<<t<<' ';
}
int main()
{
    Citire();
    Rezolvare();

    return 0;
}