Cod sursa(job #3237355)

Utilizator popescu_georgePopescu George popescu_george Data 8 iulie 2024 15:59:49
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.75 kb
#pragma GCC optimize("O3,unroll-loops")
#include<bits/stdc++.h>
using namespace std;
ifstream F("deque.in");
ofstream G("deque.out");
#define Z 4096
int n,k,p=Z,q,i,a[5000001];
deque<int> d;
long long z;
char s[Z],t[Z];
inline char A()
{
    if(p==Z)
        F.read(s,Z),p=0;
    return s[p++];
}
int B()
{
    char c;
    for(c=A();!isdigit(c)&&c!='-';c=A());
    int n=0,r=1;
    if(c=='-')
        r=-1,c=A();
    for(;isdigit(c);n=n*10+c-48,c=A());
    return n*r;
}
int main()
{
    for(n=B(),k=B(),i=1;i<=n;++i) {
        for(a[i]=B();!d.empty()&&a[d.back()]>=a[i];d.pop_back());
        if(d.push_back(i),i-k==d.front())
            d.pop_front();
        if(i>=k)
            z+=a[d.front()];
    }
    return G<<z,0;
}