Cod sursa(job #2261097)
| Utilizator | Data | 15 octombrie 2018 22:10:39 | |
|---|---|---|---|
| Problema | Deque | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.62 kb |
#include<bits/stdc++.h>
using namespace std ;
ifstream f( "deque.in" ) ;
ofstream g ("deque.out") ;
int dq[ 5000001 ], v[ 5000001 ] ;
int main()
{
int n , k , dr , st , i , x ;
long long sum = 0 ;
f>>n>>k ;
for ( i = 1 ; i <= n ; i++ ){
f>>v[i] ;
}
dr = 0 ;
st = 1 ;
for ( i = 1 ; i <= n ; i++ ){
x = v [ i ] ;
while ( st <= dr && x <= v [ dq [ dr ] ] ) dr-- ;
dr++ ;
dq [ dr ] = i ;
if ( i - dq [ st ] == k ) {
st++ ;
}
if ( i >= k ) sum = sum + v [ dq [ st ] ] ;
}
g<<sum ;
}
