Pagini recente » Cod sursa (job #1072449) | Cod sursa (job #1174367) | Cod sursa (job #41456) | Cod sursa (job #1760918) | Cod sursa (job #2289353)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("deque.in");
ofstream out("deque.out");
int n,k,v[5000005],dq[5000005];
long long int suma;
int main()
{
int i,j;
in >> n >> k;
for (i=0; i<n; i++)
{
in >> v[i];
}
int st = 0,dr = -1;
for (i=0; i<n; i++)
{
///scot din st ceea ce nu mai e in sceventa ceruta
if (st <= dr && dq[st] == i-k)
{
st++;
}
///scot din dr ce e prost
while (st <= dr && v[i] <= v[dq[dr]])
{
dr--;
}
dq[++dr] = i;
if (i >= k-1)
suma += v[dq[st]];
}
out << suma;
return 0;
}