Cod sursa(job #2443201)
| Utilizator | Data | 26 iulie 2019 20:57:16 | |
|---|---|---|---|
| Problema | Deque | Scor | 0 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.56 kb |
#include <iostream>
#include <fstream>
#include <deque>
using namespace std;
deque<int>dq;
int arr[5000000 + 8];
int main()
{
int n,a, k, rez=0;
cin >> n >> k;
for (int i = 1; i <= n; i++)
{
cin >> a;
arr[i] = a;
if (dq.empty()) dq.push_back(a);
else
{
while (!dq.empty())
{
if (dq.back() > a)dq.pop_back();
else break;
}
dq.push_back(a);
}
if (i >= k) {
if (i > k)
{
if (arr[i - k] == dq.front()) dq.pop_front();
}
rez += dq.front();
}
}
cout << rez;
return 0;
}