Cod sursa(job #2543497)

Utilizator BOIERULPOTFALEANAndrei Potfalean BOIERULPOTFALEAN Data 11 februarie 2020 10:40:05
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.88 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fi ("deque.in");
    ofstream fo ("deque.out");
    int N,K;
    int A[5000002];
    int ST[5000002];
    int DR[5000002];
int main()
{
    fi>>N>>K;
    for (int i=1 ; i<=N ; i++)
        fi>>A[i];
    ///se construieste sirul ST
    ST[0]=2000000;
    for (int i=1 ; i<=N  ; i++)
        if (i%K==0)
            ST[i]=A[i];
         else
            ST[i]=min(ST[i-1],A[i]);
    ///se construieste sirul DR
    DR[N+1]=2000000;
    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]);
    long long 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;
}