Cod sursa(job #3238967)

Utilizator KRISTY06Mateiu Ianis Cristian Vasile KRISTY06 Data 31 iulie 2024 23:30:48
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.82 kb
#include <bits/stdc++.h>
using namespace std;

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

#define MAX_VALUE 2000000001
#define MIN_VALUE -2000000001
#define MAX_LEN 6000001

int sum[MAX_LEN];

int main() {
    int n;
    fin >> n;
    int left = 0, ansLeft = 0, ansRight = 0, minSum = MAX_VALUE, ans = MIN_VALUE;
    for (int i = 1; i <= n; ++i) {
        int number;
        fin >> number;
        sum[i] = sum[i - 1] + number;
        if (sum[i] - minSum > ans || sum[i] > ans) {
            ans = max(sum[i] - minSum, sum[i]);
            ansLeft = left + 1;
            ansRight = i;
        }
        if (sum[i] < minSum) {
            minSum = sum[i];
            left = i;
        }
    }
    fout << ans << ' ' << ansLeft << ' ' << ansRight;
    return 0;
}
/*










*/