Pagini recente » Cod sursa (job #2278254) | Cod sursa (job #298695) | Cod sursa (job #2398276) | Cod sursa (job #2713577) | Cod sursa (job #2291116)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("deque.in");
ofstream g("deque.out");
int n , m , a[6000000] , b[6000000] ;
int main()
{
f >> n >> m ;
for( int i = 0 ; i < n ; i ++ )
f >> a[i] ;
long long sum = 0 ;
int x = 0 , cursor2 = -1 , cursor1 = 0 ;
for( int i = 0 ; i < n ; i ++ )
{
if(cursor1 <= cursor2 && b[cursor1]==i - m)
{
cursor1 ++;
}
while( cursor1 <= cursor2 && a[i] <= a[b[cursor2]])
{
cursor2 -- ;
}
b[++cursor2] = i;
if(i >= m - 1)
{
sum = sum + a[b[cursor1]] ;
}
}
g << sum ;
}