Pagini recente » Cod sursa (job #121096) | Cod sursa (job #1310046) | Cod sursa (job #849796) | Cod sursa (job #198703) | Cod sursa (job #2291506)
#include <fstream>
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
int v[5000005], deq[5000005], poz[5000005];
int main()
{
int i, j, n, k, front = 1, end = 1, s = 0;
fin >> n >> k;
for(i = 1; i <= n; i++) fin >> v[i];
deq[1] = v[1];poz[1] = 1;
for(i = 2; i <= n; i++){
deq[++end] = v[i]; poz[end] = i;
while(deq[end] < deq[end - 1] && end > front)
poz[end - 1] = poz[end], deq[end - 1 ] = deq[end--];
if(i >= k) s += deq[front];
if(poz[front] == i - k + 1) front++;
}
fout << s;
return 0;
}