Cod sursa(job #1174618)

Utilizator hasmasandragosHasmasan Dragos hasmasandragos Data 23 aprilie 2014 16:37:20
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include <fstream>
#include <deque>

using namespace std;
deque<int> deck;
int vec[5000005],n,k,i;
long long int suma;

ifstream f("deque.in");
ofstream g("deque.out");

int main()
{f>>n>>k;
 for (i=1;i<=n;i++)
  f>>vec[i];
 for (i=1;i<=n;i++)
  { while(!deck.empty())
        if(deck.front()+k-1<i)
            deck.pop_front();
        else
            break;

    while(!deck.empty())
       if (vec[deck.back()]>=vec[i])
            deck.pop_back();
        else
            break;

   deck.push_back(i);
   if (i>=k)
    suma+=vec[deck.front()];
  }
  g<<suma<<'\n';
  f.close();
  g.close();
    return 0;
}