Pagini recente » Cod sursa (job #1813657) | Cod sursa (job #1399276) | Cod sursa (job #2907725) | Cod sursa (job #2805142) | Cod sursa (job #572312)
Cod sursa(job #572312)
//#include<cstdio>
#include<fstream>
#define nmax 5000001
using namespace std;
ifstream f("deque.in");
ofstream g("deque.out");
struct deque
{
int el,pos;
} A[nmax];
int N,k;
long long ST;
void solve();
void write();
int main()
{
//freopen("deque.in","r",stdin);
//freopen("deque.out","w",stdout);
solve();
write();
return 0;
}
void solve()
{
int i,in,sf,e,ok1;
//scanf("%d%d",&N,&k);
f>>N>>k;
in=sf=1;
//scanf("%d",&e);
f>>e;
A[in].el=e;
A[in].pos=1;
for (i=2;i<=N;++i)
{
//scanf("%d",&e);
f>>e;
while (A[sf].el>=e&&sf>=in)
--sf;
++sf;
A[sf].pos=i;
A[sf].el=e;
if (A[in].pos<=i-k) ++in;
if (i>=k) ST+=A[in].el;
}
}
void write()
{
g<<ST<<'\n';
//printf("%lld\n",ST);
}