Pagini recente » Cod sursa (job #1311874) | Cod sursa (job #439239) | Cod sursa (job #1344402) | Cod sursa (job #392979) | Cod sursa (job #2765295)
#include <fstream>
#include <iostream>
using namespace std;
ifstream fin ("deque.in");
ofstream fout ("deque.out");
int minime[5000000];
int N, K, v[5000000], s, f;
long long Sum;
int main()
{
s = 1, f = 0;
fin>>N>>K;
for(int i = 1; i <= N; i++)
{
fin>>v[i];
}
for(int i = 1; i<= N; i++)
{
while(s <= f && v[i] <= v[minime[f]])
{
f--;
}
minime[++f] = i;
if(minime[s] == i-K)
{
s++;
}
if(i >= K)
{
Sum += v[minime[s]];
}
}
fout<<Sum;
return 0;
}