Cod sursa(job #2673760)
Utilizator | Data | 17 noiembrie 2020 17:29:28 | |
---|---|---|---|
Problema | Deque | Scor | 60 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.48 kb |
#include <fstream>
#include <deque>
#define ll long long
#define pi std::pair<ll,int>
std::deque<pi>dq;
int main() {
std::ifstream fin("deque.in");
std::ofstream fout("deque.out");
ll n, k, c, s = 0;
fin >> n >> k;
for (int i = 1; i <= n; i++) {
fin >> c;
if (!dq.empty() and dq.front().second + k - 1 < i) dq.pop_front();
while (!dq.empty() and dq.back().first >= c) dq.pop_back();
dq.push_back({ c, i });
if(i>=k) s += dq.front().first;
}
fout << s;
}