Cod sursa(job #3247565)
Utilizator | Data | 8 octombrie 2024 14:09:51 | |
---|---|---|---|
Problema | Deque | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.59 kb |
#include <fstream>
#include <deque>
using ll = long long;
using namespace std;
ifstream cin ("deque.in");
ofstream cout ("deque.out");
int v[5000005];
deque <int> dq;
signed main() {
int n, k;
cin >> n >> k;
for(int i = 1; i <= n; i++)
cin >> v[i];
ll ans = 0;
for(int i = 1; i <= n; i++) {
while(!dq.empty() && v[dq.back()] > v[i])
dq.pop_back();
while(!dq.empty() && dq.front() <= i-k)
dq.pop_front();
dq.push_back(i);
if(i >= k)
ans += v[dq.front()];
}
cout << ans;
}