Cod sursa(job #2566603)

Utilizator amalia.gemanGeman Aamalia amalia.geman Data 2 martie 2020 22:14:05
Problema Deque Scor 60
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.94 kb
#include <iostream>
#include <fstream>
#define N 5000001
#include <deque>
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");

long long n, k, s, x;

struct pereche
{
    long long value;
    int poz;
};

int main()
{
   fin >> n >> k;
   int x;

   deque <pereche> my_deque;

   for(int i=1; i<=n; i++)
   {
       fin >> x;
       if(my_deque.empty())
       {
           pereche p;
           p.value = x;
           p.poz = i;
           my_deque.push_back(p);
       }
        else
        {
            if(i - my_deque.front().poz == k)
                my_deque.pop_front();

            while(!my_deque.empty() && my_deque.back().value > x)
                my_deque.pop_back();

            pereche p;
            p.value = x;
            p.poz = i;
            my_deque.push_back(p);

        }
        if(i >= k) s += my_deque.front().value;
   }
   fout << s;
    return 0;
}