Cod sursa(job #1260819)

Utilizator andrei1998xAndrei Ionut andrei1998x Data 11 noiembrie 2014 17:15:42
Problema Deque Scor 25
Compilator cpp Status done
Runda Arhiva educationala Marime 0.53 kb
#include <fstream>
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
int n,k,i,p,u,d[5000001],v[5000001],sol;
int main()
{
    fin>>n>>k;
    for (i=1;i<=n;i++)
        fin>>v[i];
    d[1]=1;
    p=1;
    u=1;
    for (i=2;i<=n;i++)
    {
        //introducem pe v[i]
        while (p<=u && v[i] <= v[ d[u] ])
            u--;
        d[++u] = i;
        if (i-d[p] == k)
            p++;
        if (i >= k) {
            sol += v[d[p]];
        }
    }
    fout<<sol;
    return 0;
}