Cod sursa(job #1276672)

Utilizator Narcys01Ciovnicu Narcis Narcys01 Data 26 noiembrie 2014 18:47:05
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include <fstream>

using namespace std;

int n, k, pr, ul;

struct coada
{
    int val, poz;
} q[5000002];

int main()
{
    int i, x;
    long long s;
    ifstream fin("deque.in");
    fin >> n >> k;
    pr = ul = 1;
    fin >> x;
    q[pr].val = x;
    q[pr].poz = 1;
    for (i = 2; i <= k; i++)
    {
        fin >> x;
        while (pr <= ul && q[ul].val > x)
            ul--;
        q[++ul].val = x;
        q[ul].poz = i;
    }
    s = q[pr].val;
    for (i = k + 1; i <= n; i++)
    {
        fin >> x;
        while (pr <= ul && q[ul].val > x)
            ul--;
        q[++ul].val = x;
        q[ul].poz = i;
        if (q[pr].poz < i - k + 1)
            pr++;
        s += q[pr].val;
    }
    fin.close();
    ofstream fout("deque.out");
    fout << s;
    fout.close();
    return 0;
}