Cod sursa(job #1142825)

Utilizator andrei_diaconuAndrei Diaconu andrei_diaconu Data 14 martie 2014 11:50:35
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include <fstream>
#define NMax 5000010
using namespace std;
ifstream f("deque.in");
ofstream g("deque.out");
int n, k, dqmin[NMax], i, v[NMax], p, u, nr;
long long s;
int main()
{
    f>>n>>k;
    p=1;
    u=0;
    v[dqmin[0]]=-10000005;
    for (i=1; i<=n; i++) {
        f>>v[i];
        while(v[dqmin[u]] > v[i] && p<=u)
            u--;
        dqmin[++u]=i;
        while (i-nr>k && p<=u) {
            nr++;
            if(nr==dqmin[p])
                p++;
        }
        if(i-nr==k)
            s+=v[dqmin[p]];
    }
    g<<s;
    return 0;
}