Cod sursa(job #2104799)

Utilizator tiberiu392Tiberiu Ungurianu tiberiu392 Data 12 ianuarie 2018 11:58:00
Problema Deque Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include <fstream>

using namespace std;
ifstream f("deque.in");
ofstream g("deque.out");
const int nmax = 5000000 ;
int fr, bk, dq[nmax], i, n, k, a[nmax];
long long sum=0;

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

    fr =1; bk =0;
    for( i = 1; i <= n ; i++)
    {
        while( fr<= bk && a[i] <= a[dq[bk]] )
            bk--;
        dq[++bk] = i;
         if( dq[fr] == i-k)
            fr++;
         if(i >= k)
            sum+= a[dq[fr]];
    }
    g << sum;
    return 0;
}