Cod sursa(job #2723485)
Utilizator | Data | 14 martie 2021 11:27:23 | |
---|---|---|---|
Problema | Deque | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.52 kb |
#include<bits/stdc++.h>
using namespace std;
ifstream f("deque.in");
ofstream g("deque.out");
int n, v[5000002], k, d[5000002], st = 1, dr = 1;
long long ans;
int main()
{
f >> n >> k;
for(int i = 1; i <= n; ++i)
f >> v[i];
for(int i = 1; i <= n; ++i)
{
while(dr >= st && v[d[dr]] > v[i])
--dr;
if(dr >= st && d[st] == i-k)
++st;
d[++dr] = i;
if(i >= k)
ans += v[d[st]];
}
g << ans;
return 0;
}