Pagini recente » Cod sursa (job #668615) | Cod sursa (job #526611) | Cod sursa (job #533768) | Cod sursa (job #1078258) | Cod sursa (job #476757)
Cod sursa(job #476757)
# include <deque>
using namespace std ;
const char FIN[] = "deque.in", FOU[] = "deque.out" ;
deque < pair < int, int > > Q ;
int N, K;
long long sol ;
int main()
{
freopen ( FIN, "r", stdin ) ;
freopen ( FOU, "w", stdout ) ;
scanf ( "%d %d", &N, &K ) ;
for ( int i = 1, nr ; i <= N; ++i ) {
scanf ( "%d", &nr ) ;
for ( ; ! Q.empty () && Q.back ().first > nr ; Q.pop_back () ) ;
for ( ; ! Q.empty () && Q.front ().second <= i - K ; Q.pop_front () ) ;
Q.push_back ( make_pair ( nr, i ) ) ;
if ( i - K >= 0 ) {
sol += Q.front ().first ;
}
}
printf ( "%lld", sol ) ;
return 0;
}