Cod sursa(job #2543496)

Utilizator anamaria.dumitraheDumitrache Ana-Maria anamaria.dumitrahe Data 11 februarie 2020 10:39:42
Problema Deque Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.87 kb

#include <iostream>
#include <fstream>
using namespace std;
     ifstream fin ("date.in");
     ofstream fout ("date.out");
     int N, K;
     int A[5000002];
     int ST[5000002], DR[5000002];

int main()
{
    int N, K;
    fin>>N>>K;
    for (int i=1;i<=N;i++)
        fin>>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]);
    long long rez;
    rez=0;
    int a, b;
    a=1;
    b=K;
    while (b<=N)
    {
        rez=rez+min(DR[a],ST[b]);
        a++;
        b++;
    }
    fout<<rez;
    fin.close();
    fout.close();
    return 0;
}