Cod sursa(job #2979096)

Utilizator Cristi2211Bragau Cristian Cristi2211 Data 14 februarie 2023 19:31:20
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.71 kb
#include <fstream>

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

int a[5000002],q[5000002];

int main()
{
    int N,K;
    long long s=0;
    fin>>N>>K;
    for(int i=0;i<N;i++) fin>>a[i];
    int primul=1,ultimul=0;
    for(int i=0;i<K;i++){
        while(primul<=ultimul&&a[q[ultimul]]>=a[i]){
            ultimul--;
        }
        ultimul++;
        q[ultimul]=i;
    }
    s=s+a[q[primul]];
    for(int i=K;i<N;i++){
        while(primul<=ultimul&&a[q[ultimul]]>=a[i]){
            ultimul--;
        }
        ultimul++;
        q[ultimul]=i;
        while(q[primul]<i-K+1){
            primul++;
        }
         s=s+a[q[primul]];
    }
    fout<<s;
}