Cod sursa(job #2456177)

Utilizator Vlad.Vlad Cristian Vlad. Data 13 septembrie 2019 20:09:03
Problema Secventa Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <fstream>
#include <deque>

using namespace std;

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

int n, l, u, nrCitit, maxSum = -2147483648, sume[100002];
deque<pair<int, int>> deq;

void citire() {
    fin >> n >> l >> u;
    for (int i = 1; i <= n; ++i) {
        fin >> nrCitit;
        sume[i] = nrCitit + sume[i - 1];
    }
}

int main()
{
    citire();
    for (int i = 0; i <= n; ++i) {
        while (!deq.empty() && deq.back().first > sume[i]) {
            deq.pop_back();
        }
        deq.push_back(make_pair(sume[i], i));
        if (i - deq.front().second == u + 1) {
            deq.pop_front();
        }
        if (deq.back().second - deq.front().first >= l + 1) {
            if (deq.back().first - deq.front().first > maxSum) {
                maxSum = deq.back().first - deq.front().first;
            }
        }
    }
    fout << maxSum << "\n";
    return 0;
}