Cod sursa(job #3127207)

Utilizator CybotXDStancila Ionut CybotXD Data 7 mai 2023 13:28:10
Problema Deque Scor 25
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.63 kb
#include <iostream>
#include <fstream>

using namespace std;

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

int n, k, s;
int deq[5000010], v[5000010];
int front=1, back=0;

int main()
{
    f>>n>>k;

    for (int i=1;i<=n;i++)
        f>>v[i];
    
    for (int i=1;i<=n;i++)
    { while (front<=back && v[i]<=v[deq[back]])
        back--;
      deq[++back]=i;

      if (deq[front] == i-k) front++; // nu mai avem nevoie de ce e in fata cozii pt i+1

      if (i>=k) // daca am trecut de lungimea subsecventei atunci putem adauga la suma deq[front]
        s+=v[deq[front]];
    }

    g<<s<<'\n';
    
}