Pagini recente » Borderou de evaluare (job #1024478) | Borderou de evaluare (job #1024474) | Borderou de evaluare (job #1402004) | Borderou de evaluare (job #442174) | Cod sursa (job #2888198)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f ("deque.in");
ofstream g ("deque.out");
int v[5000000];
int n, k, i, l, r;
long long s;
int *deq = new int[5000000];
int main()
{
f>>n>>k;
for (i = 1; i <= n; i++)
f>>v[i];
l = 1;
r = 0; //deque-ul este vid
for (i = 1; i <= n; i++)
{
while (l <= r && v[i] <= v[ deq[r] ])
r--;
deq[++r] = i;
if (deq[l] == i-k) l++;
if (i >= k)
s += v[ deq[l]];
}
delete[] deq;
g<<s;
return 0;
}