Cod sursa(job #1106479)

Utilizator AeroHHorea Stefan AeroH Data 12 februarie 2014 20:45:35
Problema Deque Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <fstream>
#include <deque>
using namespace std;
ifstream f("deque.in");
ofstream g("deque.out");
int i,j,k,N,M,D,a,b;
deque <int> mini,maxi;
int v[5000001];
long long int rasp;
int main()
{
   f>>N>>D;
   for (i=1;i<D;++i)
        {
            f>>a;v[i]=a;
            while (mini.size()&&mini.back()>a)
                mini.pop_back();
            mini.push_back(i);

        }
   for (;i<=N;++i)
        {
            f>>a;v[i]=a;
            if (mini.front()<=i-D)
                mini.pop_front();
            while (mini.size()&&v[mini.back()]>a)
                mini.pop_back();
            mini.push_back(i);
            rasp+=v[mini.front()];
        }

    g<<rasp;
   return 0;

}