Cod sursa(job #1429101)

Utilizator StarGold2Emanuel Nrx StarGold2 Data 5 mai 2015 17:36:05
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.91 kb
#include <cstdio>
#include <deque>
#define f first
#define s second
using namespace std;

FILE *fin = fopen("deque.in" ,"r");
FILE *fout= fopen("deque.out","w");

deque <pair<int, int> > Deq;
int N, K, X;
long long S;

inline void CodeExpert(){
     fscanf(fin, "%d %d", &N, &K);
     for(int i = 1; i <= K; i ++){
          fscanf(fin, "%d", &X);
          while(!Deq.empty() && Deq.back().s > X)
               Deq.pop_back();
          Deq.push_back(make_pair(i, X));
     }
     S = Deq.front().s;
     for(int i = K+1; i <= N; i ++){
          fscanf(fin, "%d", &X);
          if(Deq.front().f == i-K)
               Deq.pop_front();
          while(!Deq.empty() && Deq.back().s > X)
               Deq.pop_back();
          Deq.push_back(make_pair(i, X));
          S += Deq.front().s;
     }
     fprintf(fout, "%lld", S);
     return;
}

int main(){
     CodeExpert();
     return 0;
}