Cod sursa(job #2543373)

Utilizator tziplea_stefanTiplea Stefan tziplea_stefan Data 11 februarie 2020 08:52:32
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.69 kb
#include <fstream>

using namespace std;

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

const int VAL=5000005;

int N, M, i, j, K;
int st[VAL], dr[VAL], v[VAL];
long long SUM;

int main()
{
    fin >> N >> K;
    for (i=1; i<=N; i++)
    {
        fin >> v[i];
        if ((i-1) % K==0)
            st[i]=v[i];
        else
            st[i]=min(st[i-1], v[i]);
    }
    dr[N]=v[N];
    for (i=N-1; i>=1; i--)
    {
        if ((i-1) % K==K-1)
            dr[i]=v[i];
        else
            dr[i]=min(dr[i+1], v[i]);
    }
    for (i=K; i<=N; i++)
        SUM+=min(dr[i-K+1], st[i]);
    fout << SUM << '\n';
    fin.close();
    fout.close();
    return 0;
}