Pagini recente » Borderou de evaluare (job #2722648) | Borderou de evaluare (job #328289) | Borderou de evaluare (job #1507823) | Borderou de evaluare (job #1745767) | 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;
}