Pagini recente » Cod sursa (job #1814943) | Cod sursa (job #2793574) | Cod sursa (job #336226) | Cod sursa (job #755592) | Cod sursa (job #2760744)
#include <bits/stdc++.h>
using namespace std;
ifstream f("deque.in");
ofstream g("deque.out");
int A[5000001],Deq[5000001];
int main()
{
int N, K, st = 0, dr = -1, i,s = 0;
f>>N>>K;
for(i = 0; i < N; i++)
f>>A[i];
for(i = 0 ; i < N; i++)
{
while (st <= dr && A[i] <= A[Deq[dr]]) //cat timp deq nu este gol si elementele anterioare sunt mai mari decat cel curent
dr--; //eliminam elementele mai mari
dr++;
Deq[dr] = i; //retinem pozitia elementelor
if(i + 1 >= K) //am format o secventa de K
s += A[Deq[st]]; //adaugam la suma primul element, deoarece ala e minimul
}
g<<s;
f.close();
g.close();
return 0;
}