Cod sursa(job #2291103)
| Utilizator | Data | 27 noiembrie 2018 16:22:04 | |
|---|---|---|---|
| Problema | Deque | Scor | 25 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.59 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("deque.in");
ofstream g("deque.out");
int n , m , a[600000] , b[600000] ;
int main()
{
f >> n >> m ;
for( int i = 1 ; i <= n ; i ++ )
f >> a[i] ;
int sum = 0 , x = 0 , cursor2 = 0 , cursor1 = 1 ;
for( int i = 1 ; i <= n ; i ++ )
{
while(cursor1 <= cursor2 && a[i] <= a[b[cursor2]] )
cursor2 -- ;
b[++ cursor2] = i ;
if(b[cursor1] == i - m )
cursor1 ++ ;
if( i >= m )
sum += a[b[cursor1]] ;
}
g << sum ;
}
