Cod sursa(job #1552172)

Utilizator justsomedudePalade Thomas-Emanuel justsomedude Data 17 decembrie 2015 12:26:37
Problema Deque Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb

#include<iostream>
#include<fstream>
#define nmax 5000005

using namespace std;

ifstream fin ("deque.in");
ofstream fout ("deque.out");

struct coord{
    int val, poz;  /// valoarea respectiva si pozitia in vectorul initial
};

int n, k, st, dr;
long long int suma;
coord coada[nmax];

int main ()
{
    int i, j, x;
    fin >> n >> k;
    dr = 1; st = 1;
    suma = 0;

    fin >> coada[st].val;
    coada[st].poz = 1;

    for (i=1; i<=k; i++)
    {
         suma += coada[st].val;

         fin >> x;

             while (dr >=st && x < coada[dr].val)
                   dr--;

                   coada[dr].val  = x;
                   coada[dr].poz = i;

         if (coada[st].poz < i + k)
             st++;
    }

    fout << suma << "\n";

    fin.close();
    fout.close();
    return 0;
}