Cod sursa(job #2634369)
| Utilizator | Data | 10 iulie 2020 18:36:02 | |
|---|---|---|---|
| Problema | Deque | Scor | 15 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.66 kb |
#include <bits/stdc++.h>
#define ll long long
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
deque <int> minimum;
map <int, int> freq;
ll result;
int main() {
int n, k, x;
fin >> n >> k;
for (int i = 1; i <= n; i++) {
fin >> x;
while (!minimum.empty() && x < minimum.back())
minimum.pop_back();
minimum.push_back(x);
if (i >= k)
result += minimum.front();
if (++freq[minimum.front()] == k) {
freq[minimum.front()] = 0;
minimum.pop_front();
}
}
fout << result;
return 0;
}