Cod sursa(job #2197365)

Utilizator benjamin2205Zeic Beniamin benjamin2205 Data 21 aprilie 2018 22:06:23
Problema Subsecventa de suma maxima Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 1.1 kb
#include <bits/stdc++.h>

using namespace std;

ifstream f ("ssm.in");
ofstream g ("ssm.out");

int n;
int sir[6000005];

void citire();
void afisare();

void rezolvare() {
    int maxim = 0;
    int minim = 0;
    int sumaMaxima = INT_MIN;
    int iMax;
    int iMin;

    for (int i = 1; i <= n; ++i) {
        sir[i] += sir[i - 1];
    }

    for (int i = 1; i <= n; ++i) {
        for (int j = 1; j < i; ++j) {
            /// Daca s[i] - s[j] > sumaMaxima atunci
            /// Inlocuieste bestul curent si retine indicele maximului
            if (sir[i] - sir[j] > sumaMaxima) {
                sumaMaxima = sir[i] - sir[j];
                iMax = i;
                iMin = j + 1;
            }
        }
    }

    g << sumaMaxima << ' ';

    g << iMin << ' ' << iMax << '\n';

    //afisare();
}

int main()
{
    citire();
    //afisare();
    rezolvare();
    return 0;
}

void citire() {
    f >> n;
    for (int i = 1; i <= n; ++i) {
        f >> sir[i];
    }
}

void afisare() {
    for (int i = 1; i <= n; ++i) {
        g << sir[i] << ' ';
    }
}