Cod sursa(job #2591183)

Utilizator OvidRata Ovidiu Ovid Data 29 martie 2020 22:19:15
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.55 kb
#include<bits/stdc++.h>
using namespace std;
#define mp make_pair
#define pb push_back
#define ft first
#define sc second
#define ll long long
ifstream fin("deque.in"); ofstream fout("deque.out");



int n, t, q, k, l, a[5000005], v[5000010];








int main(){
fin>>n>>k;

ll sum=0;

int s=0, b=0;

for(int i=0; i<n; i++){
    int x; fin>>x;
    a[i]=x;
    while(s-b>=1 && a[v[max(s-1, 0) ] ]>=a[i] ){s--;}
    v[s]=i; s++;

    if(i>=k-1){sum+=a[v[b] ]; if(v[b]<=i-k+1 ){b++; } }

}



fout<<sum;


return 0;
}