Pagini recente » Cod sursa (job #1580812) | Cod sursa (job #502590) | Cod sursa (job #2509362) | Statistici Iulia Maria (iuliaulialiaia) | Cod sursa (job #793804)
Cod sursa(job #793804)
#include <cstdio>
#include <queue>
using namespace std;
struct element{
int nr;
int poz;
element (int x, int y){
nr = x;
poz = y;
}
};
int n;
int k;
deque <element> a;
int s;
void citire(){
int x;
freopen ("deque.in", "r", stdin);
scanf ("%d", &n);
scanf ("%d", &k);
scanf ("%d", &x);
a.push_back (element (x, 0));
for (int i = 2; i < k; ++ i){
scanf ("%d", &x);
while (a.back().nr >= x){
a.pop_back();
}
a.push_back (element (x, i - 1));
}
for (int i = k - 1; i < n; ++ i){
scanf ("%d", &x);
if (a.front().poz <= i - k){
a.pop_front();
}
while (!a.empty() && a.back().nr >= x){
a.pop_back();
}
a.push_back (element (x, i));
s += a.front().nr;
}
}
void afisare(){
freopen ("deque.out", "w", stdout);
printf ("%d", s);
}
int main()
{
citire();
afisare();
return 0;
}