Cod sursa(job #2304528)

Utilizator raduiliaRadu Vlad Ilia raduilia Data 18 decembrie 2018 10:01:55
Problema Deque Scor 25
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.61 kb
#include <fstream>

using namespace std;

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

const int           N = 500000;

int                 v[ N ], dq[ N ];

int main()
{
    int             n = 0, k = 0, st = 0, dr = -1, s = 0;

    fin >> n >> k;
    for( int i = 0; i < n; ++i )
    {
        fin >> v[ i ];
    }
    for( int i = 0; i < n; ++i )
    {
        if( st <= dr && dq[ st ] == i - k )
            ++st;
        while( st <= dr && v[ i ] <= v[ dq[ dr ] ] )
            --dr;
        dq[ ++dr ] = i;
        if( i >= k - 1 )
            s += v[ dq[ st ] ];
    }
    fout << s;
    return 0;
}