Pagini recente » Cod sursa (job #3348216) | Cod sursa (job #3311214) | Cod sursa (job #851577) | Cod sursa (job #2660140) | Cod sursa (job #3337771)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("deque.in") ;
ofstream fout ("deque.out") ;
int v[5000001] ;
deque < int > q ;
int main()
{
int n , k ;
long long s = 0 ;
fin >> n >> k ;
for ( int i = 1 ; i <= n ; i ++ )
{
if ( i < k )
{
q.push_back(i) ;
while ( ! q.empty() && v[q.back()] > v[i] )
q.pop_back() ;
}
fin >> v[i] ;
}
for ( int i = k ; i <= n ; i ++ )
{
while ( ! q.empty() && v[q.back()] > v[i] )
q.pop_back() ;
q.push_back(i) ;
while ( !q.empty() && q.back() - q.front() >= k )
q.pop_front() ;
s += v[q.front()] ;
}
fout << s ;
return 0;
}