Cod sursa(job #1699192)

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

using namespace std;

const int MAX_SIZE = 7000005;
long s[MAX_SIZE];

int main() {
    ifstream in("ssm.in");
    ofstream out("ssm.out");
    int n;
    in>>n;
    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();
}