Cod sursa(job #2543469)

Utilizator KaraivanoffEduardIvanKaraivanoff Eduard-Ivan KaraivanoffEduardIvan Data 11 februarie 2020 10:28:06
Problema Deque Scor 25
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.85 kb
#include <iostream>
#include <fstream>
using namespace std;

int main()
{
    ifstream fi("deque.in");
    ofstream fo("deque.out");
    int N,K;
    int A[5000002];
    int ST[5000002];
    int DR[5000002];
    fi>>N>>K;
    for(int i=1; i<=N; i++)
        fi>>A[i];
    ///se construieste sirul ST
    ST[0]=2000000000;
    for(int i=1; i<=N; i++)
        if(i%K==1)
            ST[i]=A[i];
        else
            ST[i]=min(ST[i-1],A[i]);
    ///se construieste sirul DR
    DR[N+1]=2000000000;
    DR[N]=A[N];
    for(int i=N-1;i>=1;i--)
        if(i%K==0)
        DR[i]=A[i];
    else
        DR[i]=min(DR[i+1],A[i]);
    int rez;
    rez=0;
    int a,b;
    a=1;
    b=K;
    while(b<=N)
    {
        rez=rez+min(DR[a],ST[b]);
        a++;
        b++;
    }
    fo<<rez;
    fi.close();
    fo.close();
    return 0;
}