Cod sursa(job #1699189)

Utilizator andreipurdilaAndrei Purdila andreipurdila Data 6 mai 2016 16:16:42
Problema Subsecventa de suma maxima Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <iostream>
#include <fstream>

using namespace std;

int main() {
    ifstream in("ssm.in");
    ofstream out("ssm.out");
    long n;
    in>>n;
    long s[n+1];
    s[0] = 0;
    for (long i = 1; i <= n; ++i) {
        in>>s[i];
    }
    s[0] = 0;
    int maxSum = INT32_MIN;
    int min = 0, pozMin = 0, start, end;
    for (int i = 1; i <= n; ++i ) {
        s[i] += s[i-1];
        if (s[i] - min > maxSum ) {
            start = pozMin + 1;
            end = i;
            maxSum = s[i] - min;
        }
        if (s[i] < min) {
            min = s[i];
            pozMin = i;
        }
    }

    out<<maxSum<<" "<<start<<" "<<end;
    in.close();
    out.close();
}