Pagini recente » Cod sursa (job #1703884) | Cod sursa (job #1789967) | Cod sursa (job #2744876) | Cod sursa (job #1093818) | Cod sursa (job #536069)
Cod sursa(job #536069)
#include<stdio.h>
#include<deque>
#define dim 5000100
using namespace std;
int a[dim],n,k;
long long int sum;
deque <int> q;
void read()
{
scanf("%d %d\n",&n,&k);
for(int i=1 ; i<=n;i++)
scanf("%d ",&a[i]);
}
void solve ()
{
for(int i=1 ; i<=n;i++)
{
while (!q.empty() && a[i] <= a[ q.back() ])
{
q.pop_back();
}
q.push_back(i);
if ( !q.empty() )
{ if ( q.front() == i-k )
q.pop_front();
if ( i >= k )
sum+= a[ q.front() ] ;
}
}
printf("%d\n",sum ) ;
}
int main ()
{
freopen("deque.in","r",stdin);
read ();
freopen("deque.out","w",stdout);
solve();
return 0;
}