Cod sursa(job #2546220)

Utilizator S_DanSochirca Dan S_Dan Data 13 februarie 2020 21:53:52
Problema Subsecventa de suma maxima Scor 90
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.49 kb
#include <bits/stdc++.h>
using namespace std;

int a[6000100],dp[6000100];
int rs=INT_MIN,n,sf,inc;

int main(){
    ifstream cin("ssm.in");
    ofstream cout("ssm.out");

    cin>>n;
    for(int i=1;i<=n;i++) cin>>a[i];

    for(int i=1;i<=n;i++){
        dp[i]=max(dp[i-1]+a[i],dp[i]);
        if(dp[i]>rs){
            rs=dp[i];
            sf=i;
        }
    }
    cout<<rs<<' ';

    int i=sf;
    while(rs>0){rs-=a[i];i--;}
    cout<<i+1<<' '<<sf;

    return 0;
}