Cod sursa(job #476757)

Utilizator SpiderManSimoiu Robert SpiderMan Data 12 august 2010 12:26:12
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
# 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;
}