Pagini recente » Cod sursa (job #3324141) | Cod sursa (job #3310110) | Cod sursa (job #3324398) | Diferente pentru problema/sms intre reviziile 9 si 8 | Cod sursa (job #3337774)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("deque.in") ;
ofstream fout ("deque.out") ;
long long v[5000001] ;
deque < long long > q ;
int main()
{
long long n , k ;
long long s = 0 ;
fin >> n >> k ;
for ( int i = 1 ; i <= n ; i ++ )
{
fin >> v[i] ;
if ( i < k )
{
while ( ! q.empty() && v[q.back()] > v[i] )
q.pop_back() ;
q.push_back(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;
}