Cod sursa(job #2314628)

Utilizator skoda888Alexandru Robert skoda888 Data 8 ianuarie 2019 21:03:34
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.96 kb

#include <iostream>
#include <fstream>
#include <climits>
#include <algorithm>
#include <cmath>


const int MININF = INT_MIN;

int main(){

    std::ifstream in("ssm.in");
    std::ofstream out("ssm.out");

    int N;
    in >> N;

    long long int maxSubseqSum = INT_MIN;
    long long int prev;
    in >> prev;

    long long int currSum = 0;
    int maxp = 1;
    int maxq = 1;
    int currp = 1;
    int currq = 1;
    for(int i = 2; i <= N; ++i){
        long long int val;
        in >> val;
        if(val > val + prev){
            currp = i;
            currq = i;
            currSum = val;
        }
        else{
            currSum = val + prev;
            ++currq;

        }
        if(currSum > maxSubseqSum){
            maxp = currp;
            maxq = currq;
            maxSubseqSum = currSum;
        }
        prev = currSum;
    }

    out << maxSubseqSum << ' ' << maxp << ' ' << maxq;

    return 0;
}