Cod sursa(job #3277833)

Utilizator tudorpisica@gmail.comPisica Tudor [email protected] Data 17 februarie 2025 14:45:34
Problema Subsecventa de suma maxima Scor 65
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.81 kb


#include <bits/stdc++.h>

using namespace std;
 
#define nmax 6000005

long long int n, v[nmax], dp[nmax], st[nmax] , start, sfarsit, sum;

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


    in >> n;
    
    for(int i = 1; i <= n; i++)
    in >> v[i];
    
    dp[1] = v[1];
    st[1] = 1;
    
    for(int i = 2; i <= n; i++){
        
        if(dp[i - 1] >= 0){ 
            dp[i] = dp[i - 1] + v[i];
            st[i] = st[i - 1];
        }
        
        else {
            dp[i] = v[i];
            st[i] = i;
        }
        
    }
    
    for(int i = 1; i <= n; i++)
    
        if(dp[i] > sum){
        sum = dp[i];
        start = st[i];
       sfarsit = i;
    }
    
    

    out << sum << " " << start << " " << sfarsit;
   
    return 0;
}