Cod sursa(job #1117361)

Utilizator PatrikStepan Patrik Patrik Data 23 februarie 2014 14:00:17
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
    #include<cstdio>
    using namespace std;
    #define MAX 5000001
    int N ,K, v[MAX] , d[MAX] , l , r;
    long long s;

    int main()
    {
        freopen("deque.in" , "r" , stdin );
        scanf("%d%d" , &N , &K );
        for(int i = 1 ; i <= N ; ++i )
            scanf("%d" , &v[i]);
        l = 1;
        for(int i = 1 ; i<= N ; ++i )
        {
            while(l <= r && v[i] <= v[d[r]])r--;
            d[++r] = i;
            if(d[l] == i-K)l++;
            if(i >= K)
            s+=v[d[l]];
        }
        freopen("deque.out" , "w" , stdout );
        printf("%lld" , s);
        return 0;
    }