Pagini recente » Cod sursa (job #3225197) | Borderou de evaluare (job #509460) | Cod sursa (job #1533163)
#include <fstream>
#define maxn 5000100
using namespace std;
int a[maxn],deque[maxn],Front1,Back1,n,k;
long long sum;
int main()
{ ifstream f("deque.in");
ofstream g("deque.out");
int i;
f>>n>>k;
for(i=1;i<=n;i++)
f>>a[i];
Front1=1; Back1=0;
for(i=1;i<=n;i++)
{ while (Front1<=Back1&&a[i]<=a[deque[Back1]]) Back1--;
deque[++Back1]=i;
if(deque[Front1]==i-k) Front1++;
if(i>=k) sum+=a[deque[Front1]];
}
g<<sum;
return 0;
}