Cod sursa(job #2932546)

Utilizator deerMohanu Dominic deer Data 3 noiembrie 2022 09:19:35
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.69 kb
#include <fstream>
#include <climits>
using namespace std;
int v[5000001], coada[5000001];
int main() {
   ifstream cin ("deque.in");
   ofstream cout ("deque.out");
   int n, k, inc, sf;
   long long s;
   cin >> n >> k;
   inc = 0;
   sf = 0;
   s = 0;
   v[0]=INT_MIN;
   for (int i = 1; i <= n; i++) {
      cin >> v[i];
      if (i < k) {
         while (sf >= inc && v[i] < v[coada[sf]])
            sf--;
         coada[++sf] = i;
      } else {
         if (i - k + 1 > coada[inc])
            inc++;
         while (sf >= inc && v[i] < v[coada[sf]])
            sf--;
         coada[++sf] = i;
         s += v[coada[inc]];
      }
   }
   cout << s;
   return 0;
}