Cod sursa(job #2543452)

Utilizator csamoilasamoila ciprian casian csamoila Data 11 februarie 2020 10:19:31
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.87 kb
#include <iostream>
#include <fstream>

using namespace std;

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

int n;
int x[5000003];
int st[5000003];
int dr[5000003];
int k;

int main()
{
    fin >> n >> k;
    for(int i=1;i<=n;i++)
    {
        fin >> x[i];
    }
    st[0]=2000000000;
    for(int i=1;i<=n;i++)
    {
        if(i%k==1)
        {
            st[i]=x[i];
        }
        else
        {
            st[i]=min(st[i-1],x[i]);
        }
    }
    dr[n+1]=2000000000;
    dr[n]=x[n];
    for(int i=n-1;i>=1;i--)
    {
        if(i%k==0)
        {
            dr[i]=x[i];
        }
        else
        {
            dr[i]=min(dr[i+1],x[i]);
        }
    }
    long long int rez=0;
    for(int i=1;i<=n-k+1;i++)
    {
        rez+=1LL*min(st[i+k-1],dr[i]);
    }
    fout << rez;
    fin.close();
    fout.close();
}