Cod sursa(job #2625731)
| Utilizator | Data | 6 iunie 2020 09:43:45 | |
|---|---|---|---|
| Problema | Deque | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.59 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("deque.in");
ofstream fout ("deque.out");
int v[5000005], Deque[5000005];
int main (){
int N, K;
fin >> N >> K;
for (int i = 1; i <= N; ++i)
fin >> v[i];
long long sum = 0;
int front = 1, back = 0;
for (int i = 1; i <= N; ++i) {
while (front <= back && v[i] <= v[Deque[back]])
back--;
Deque[++back] = i;
if (Deque[front] == i-K)
front++;
if (i >= K)
sum = sum + v[Deque[front]];
}
fout << sum;
}
