Pagini recente » Istoria paginii utilizator/anghel_cipriana | Cod sursa (job #760846) | Cod sursa (job #1903463) | Istoria paginii utilizator/zahariacatalin | Cod sursa (job #542984)
Cod sursa(job #542984)
#include<fstream>
#include<deque>
using namespace std;
#define maxn 5000001
ifstream f("deque.in");
ofstream g("deque.out");
int n,k,i;
int h,t; //head & tail
int A[maxn], Deck[maxn];
long long ss;
int main()
{ f>>n>>k;
for (i = 1; i <= n; i++)
f>>A[i];
h=1;
t=0;
ss=0;
for (i=1;i<=n;++i){
while (h<=t&&A[i]<=A[Deck[t]])
t--;
Deck[++t]=i;
if (Deck[h]==i-k)
++h;
if (i>=k)
ss+=A[Deck[h]];
}
g<<ss<<'\n';
return 0;
}