Cod sursa(job #3249979)

Utilizator Alex_BerbescuBerbescu Alexandru Alex_Berbescu Data 18 octombrie 2024 22:44:03
Problema Secventa 2 Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.83 kb
#pragma GCC optimize("O3")
#pragma GCC optimize("fast-math")
#pragma GCC optimize("unroll-loops")
#include<bits/stdc++.h>
#define inf 0x3f3f3f3f
using namespace std;
long long k, n, st, dr, smaxu = -inf, sp[200005];
deque<long long>dq;
ifstream fin("secv2.in");
ofstream fout("secv2.out");
int main()
{
    fin >> n >> k;
    for(int i = 1; i <= n; ++i)
    {
        fin >> sp[i];
        sp[i] += sp[i - 1];
    }
    for(int i = k; i <= n; ++i)
    {
        while(!dq.empty() && sp[i] - sp[dq.front()] <= sp[i] - sp[i - k])
        {
            dq.pop_back();
        }
        if(!dq.empty() && sp[i] - sp[dq.front()] > smaxu)
        {
            st = dq.front();
            dr = i;
            smaxu = sp[i] - sp[dq.front()];
        }
        dq.push_back(i - k);
    }
    fout << st + 1 << " " << dr << " " << smaxu;

    return 0;
}