Cod sursa(job #2623419)
| Utilizator | Data | 3 iunie 2020 10:14:45 | |
|---|---|---|---|
| Problema | Deque | Scor | 30 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.54 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
int n, k, v[5000100];
deque<int> d;
long long sol;
void add(int x) {
while (!d.empty()) {
if (x > d.back())
break;
d.pop_back();
}
d.push_back(x);
}
int main() {
fin >> n >> k;
for (int i = 1; i < k; i++) {
fin >> v[i];
add(v[i]);
}
for (int i = k; i <= n; i++) {
if (v[i - k] == d.front())
d.pop_front();
fin >> v[i];
add(v[i]);
sol += (long long)d.front();
}
fout << sol;
return 0;
}
