Pagini recente » Cod sursa (job #244238) | Cod sursa (job #2104517) | Cod sursa (job #12859) | Cod sursa (job #2292470) | Cod sursa (job #2888539)
#include <fstream>
#include <iostream>
using namespace std;
class Asd
{
public:
int first;
int second;
};
Asd a[5000006];
int coada = 0, mar = 0, cap = 0;
void pushFront(const long long &x, const long long &c)
{
cap++;
a[cap].first = x;
mar++;
a[cap].second = c;
}
void popFront()
{
mar--;
cap--;
}
void popBack()
{
coada++;
mar--;
}
Asd back() { return a[coada +1]; }
bool gol() { return (!mar) ? 1 : 0; }
Asd front() { return a[cap]; }
int k = 0, n = 0, x;
long long mm = 0;
int main()
{
ofstream cout("deque.out");
ifstream cin("deque.in");
// ifstream cin("dec.py");
cin >> n >> k;
for (size_t i = 0; i < n; i++)
{
cin >> x;
while (!gol() and front().first > x)
{
popFront();
}
pushFront(x, i);
if (!gol() and back().second == i - k)
{
popBack();
}
if (i >= -1 + k)
{
mm += back().first;
}
}
cout << mm;
return 0;
}