Cod sursa(job #2547552)

Utilizator TudorCristeaCristea Tudor TudorCristea Data 15 februarie 2020 14:12:53
Problema Deque Scor 25
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.85 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");

#define INF 0x3f3f3f3f

int N,K,rez;

int a[5000005];

int st[5000005],dr[5000005];

int main()
{
    fin >> N >> K;
    int i;
    for (i=1;i<=N;++i)
    {
        fin >> a[i];
    }
    for (i=1;i<=N;++i)
    {
        if (i%K==0)
        {
            st[i]=a[i];
        }
        else
        {
            st[i]=min(a[i],st[i-1]);
        }
    }
    for (i=N;i>=1;--i)
    {
        if (i%K==0 || i==N)
        {
            dr[i]=a[i];
        }
        else
        {
            dr[i]=min(a[i],dr[i+1]);
        }
    }
    int a=1,b=K;
    while (b<=N)
    {
        rez+=min(dr[a],st[b]);
        ++a;
        ++b;
    }
    fout << rez;
    fin.close();
    fout.close();
    return 0;
}