Cod sursa(job #2955607)

Utilizator Chris_BlackBlaga Cristian Chris_Black Data 17 decembrie 2022 14:00:23
Problema Subsecventa de suma maxima Scor 95
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.65 kb
#include <fstream>

using namespace std;
ifstream cin ("ssm.in");
ofstream cout("ssm.out");
const int N = 6000005;
long long dp[N];
int main()
{
    int n,st,dr,ans;
    long long x;
    long long maxi=-2147483649;
    cin>>n;
    for(int i=1;i<=n;++i)
    {
        cin>>x;
        dp[i] = max(dp[i-1]+x,x);
        if(dp[i]==x)st = i;
        if(dp[i]>maxi)
        {
            ans = st;
            maxi = dp[i];
            dr = i;
        }
        else if(dp[i]==maxi)
        {
            if(i-st < dr-ans)
            {ans = st;
            dr = i;}
        }
    }
    cout<<maxi<<' '<<ans<<' '<<dr;
    return 0;
}