Mai intai trebuie sa te autentifici.

Cod sursa(job #1412529)

Utilizator cont_gresitcont gresit cont_gresit Data 1 aprilie 2015 12:38:57
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.82 kb
#include <iostream>
#include <fstream>
#include <cstdio>
#define FOR(a,b,c) for(int a=b; a<=c; a++)
#define ROF(a,b,c) for(int a=c; a>=b; a--)
#define REP(a, b) for(int a=0; a<=b; a++)
#define max(a, b) (a>b?a:b)
#define min(a, b) (a<b?a:b)
#define MOD 666013
#define DIM 5000010
#define infile "deque.in"
#define outfile "deque.out"
using namespace std;
int n, i, p, u, v[DIM], d[DIM], k;
long long s;
int main(){
    freopen(infile, "r", stdin);
    freopen(outfile, "w", stdout);
    scanf("%d %d", &n, &k);
    for(i=1; i<=n; i++)
        scanf("%d", &v[i]);
    p=1;
    for(i=1; i<=n; i++)
    {
        if(d[p]==i-k)
            p++;
        while(v[i]<v[ d[u] ] && p<=u)
            u--;
        d[++u]=i;
        if(i>=k)
            s+=1LL*v[ d[p] ];
    }
    printf("%lld\n", s);
    return 0;
}