Pagini recente » Cod sursa (job #572907) | Cod sursa (job #1060228) | Cod sursa (job #2622599) | Cod sursa (job #2873741) | Cod sursa (job #2406785)
#include <iostream>
#include <fstream>
#define MAX 5000010
using namespace std;
int n , k;
long sum ;
int A[MAX] , Deque[MAX];
void citire()
{
ifstream in("deque.in");
in>>n>>k;
for(int i = 1 ; i <= n ;i++)
in>>A[i];
in.close();
}
int main(void)
{
citire();
int Front = 1 , Back = 0 ;
for(int i = 1 ; i<= n ; i++)
{
while( Front <= Back && A[i] <= A[Deque[Back] ]) Back--;
Deque[++Back] = i;
if(Deque[Front] == i-k) Front ++;
if(i >= k ) sum+= A[Deque[Front] ] ;
}
ofstream out("deque.out");
out<<sum;
}