Cod sursa(job #2698749)

Utilizator bibiancapitu2004Pitu Bianca bibiancapitu2004 Data 22 ianuarie 2021 21:51:15
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.72 kb
/*Se da un sir A cu N numere intregi. Pentru fiecare subsecventa de lungime K sa se determine minimul, iar apoi sa se calculeze suma acestor minime. */
#include <fstream>
using namespace std;

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

const int NMAX = 5000005;
int a[NMAX], deq[NMAX];

int main()
{
    int n, k;
    long long sum = 0;

    in >> n >> k;
    for(int i = 1;i <= n;i ++)
        in >> a[i];

    int s = 1,e = 0;
    for(int i = 1;i <= n;i ++)
    {
        while(e >= s && a[i] <= a[deq[e]] )
            e --;
        e ++;
        deq[e] = i;
        if(deq[s] == i-k)
            s ++;
        if(i >= k)
            sum += a[deq[s]];

    }
    out << sum;
    return 0;
}