Cod sursa(job #1207469)

Utilizator mihaimusatMihai Musat mihaimusat Data 13 iulie 2014 09:22:26
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include <fstream>
#define NMax 5000005

using namespace std;
int N, K;
int poz[NMax], v[NMax];
long long Res;

int main()
{
     int i, f, l;

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

     fin>>N>>K;
     for (i = 1; i <= N; ++i)
         fin>>v[i];

     f = 1; l = 0;
     for (i = 1; i <= N; ++i)
     {
         for (;f <= l && poz[f] <= i-K;++f);
         for (;f <= l && v[i] <= v[poz[l]]; --l);
         poz[++l] = i;
         if (i >= K)
            Res += v[poz[f]];
     }

     fout<<Res;

     return 0;
}