Cod sursa(job #2157731)

Utilizator EclipseTepes Alexandru Eclipse Data 9 martie 2018 20:53:26
Problema Al k-lea termen Fibonacci Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
#include <iostream>
#include <fstream>
#include <climits>
#define dMAX 6000001

using namespace std;

int n;
int arr[dMAX];

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

/// Kadane in O(n) spatiu
void Kadane() {
    int maximum = -int(2e9);
    int minimum = 0, index, l, r;
    for (unsigned int i = 1; i <= n; i++) {
        arr[i] += arr[i - 1];
        if (maximum < arr[i] - minimum) {
            maximum = arr[i] - minimum;
            l = index + 1, r = i;
        }
        if (minimum > arr[i]) {
            minimum = arr[i];
            index = i;
        }
    }
    fout << maximum << " " << l << " " << r;
}

int main()
{
    unsigned int i, j;
    fin >> n;
    for (i = 1; i <= n; i++) {
        fin >> arr[i];
    }
    Kadane();
    return 0;
}