Cod sursa(job #2539172)

Utilizator marius004scarlat marius marius004 Data 5 februarie 2020 18:38:10
Problema Subsecventa de suma maxima Scor 85
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.63 kb
#include <fstream>
 
std::ifstream f("ssm.in");
std::ofstream g("ssm.out");

const long long NMAX = 6'000'005;
const long long INF = (1LL << 60);
long long n,v[NMAX],maxx = -INF;

int main(){
    
    f >> n;
    
    for(int i = 1;i <= n;++i)
        f >> v[i];
    
    long long s = v[1];
    long long start = 1;
    long long end = 1;
    
    for(int i = 2;i <= n;++i){
        
        s += v[i];
        
        if(s < 0){
            start = i + 1;
            s = 0;
        }
        
        if(s > maxx){
            maxx = s;
            end = i;
        }
    }
    
    g << maxx << ' ' << start << ' ' << end;
    
    return 0;
}