Pagini recente » Cod sursa (job #3287015) | Cod sursa (job #525603) | Cod sursa (job #2588781) | Cod sursa (job #1487243) | Cod sursa (job #1754962)
#include <fstream>
#include <deque>
using ll = long long;
std::deque <ll> q;
ll x[5000000];
int main()
{
ll n;
ll index;
ll k;
ll sum;
std::ifstream mama("deque.in");
std::ofstream tata("deque.out");
mama >> n;
mama >> k;
for (index = 0; index < k; ++index)
{
mama >> x[index];
while ( (not q.empty()) and
(q.back() > x[index]) )
{
q.pop_back();
}
q.push_back(x[index]);
}
sum = q.front();
for (; index < n; ++index)
{
mama >> x[index];
while ( (not q.empty()) and
(q.back() > x[index]) )
{
q.pop_back();
}
q.push_back(x[index]);
if (x[index - k] == q.front())
{
q.pop_front();
}
sum += q.front();
}
tata << sum;
return 0;
}