Cod sursa(job #3259853)

Utilizator Alex21Ungureanu Alexandru Alex21 Data 28 noiembrie 2024 10:05:29
Problema Subsecventa de suma maxima Scor 45
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.65 kb
#include <fstream>
#include <climits>

using namespace std;

ifstream fin("ssm.in");
ofstream fout("ssm.out");

int sp[100005] = {0};

int main() {
    int n;
    fin >> n;

    for (int i = 1; i <= n; i++) {
    	int x;
        fin >> x;
        sp[i] = sp[i-1] + x;
    }

    int j = 0;

    int smax = INT_MIN;
    int st = 1, dr = 1;

    for (int i = 1; i <= n; i++) {
        if (sp[i] - sp[j] > smax) {
            smax = sp[i] - sp[j];
            st = j+1;
            dr = i;
        }

        if (sp[i] < sp[j]) {
            j = i;
        }
    }

    fout << smax << ' ' << st << ' ' << dr;

    return 0;
}