Cod sursa(job #3162551)

Utilizator AlexanderCernyCernaianu Alexandru AlexanderCerny Data 29 octombrie 2023 13:23:04
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.62 kb
#include <fstream>
#include <algorithm>
#include <climits>

using namespace std;

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

int v[5000001];
int dq[5000001];
int n,i,k;
long long sum;
int main()
{
    fin>>n>>k;
    int st=0,dr=0;
    v[0]=INT_MIN;
    for(i=1;i<=n;i++){
        fin>>v[i];
        while(i-dq[st]+1>k) ///elimin de la inceput deoarece lungimea secvntei ce se termina in i este mai mare decat k
            st++;
        while(st<=dr && v[i]<=v[dq[dr]])
            dr--;
        dq[++dr]=i;
        if(i>=k)
            sum=sum+v[dq[st]];
    }
    fout<<sum;
    return 0;
}