Cod sursa(job #2543487)

Utilizator ameliahateganamalia hategan ameliahategan Data 11 februarie 2020 10:35:00
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.8 kb
#include <iostream>
#include <fstream>
using namespace std;
int n,k;
int A[5000001];
int ST[5000001];
int DR[5000001];
int main()
{
    ifstream fin("deque.in");
    ofstream fout("deque.out");
    fin>>n>>k;
    for (int i=1;i<=n;i++)
        fin>>A[i];
    ST[0]=2000000000;
    /// se construieste sirul ST
    for (int i=1;i<=n;i++)
        if (i%k==1)
            ST[i]=A[i];
        else
            ST[i]=min(ST[i-1],A[i]);
    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;
    return 0;
}