Cod sursa(job #3127250)

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

using namespace std;

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

int n, k, s=0;
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';

    f.close();
    g.close();
    
    return 0;

}