Cod sursa(job #2542722)

Utilizator mihailrazMihail Turcan mihailraz Data 10 februarie 2020 15:42:12
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include <fstream>
using namespace std;

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

int n,k;
int X[5000001],ST[5000001],DR[5000001];
long long rez;
int main()
{
    fi>>n>>k;
    for(int i=1;i<=n;i++)
        fi>>X[i];
    for(int i=1;i<=n;i++)
        if(i%k==1)
            ST[i]=X[i];
        else
            ST[i]=min(X[i],ST[i-1]);
    DR[n]=X[n];
    for(int i=n-1;i>=1;i--)
        if(i%k==0)
            DR[i]=X[i];
        else
            DR[i]=min(X[i],DR[i+1]);
    int st,dr;
    rez=0LL;
    st=1;
    dr=k;
    while (dr<=n)
    {
        int v;
        v=min(DR[st],ST[dr]);
        rez+=v;
        st++;
        dr++;
    }
    fo<<rez;
    fi.close();
    fo.close();
    return 0;
}