Cod sursa(job #2543472)

Utilizator handicapatucavasi eduard handicapatu Data 11 februarie 2020 10:29:30
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.82 kb
#include <iostream>
#include<fstream>
using namespace std;
int v[5000005];
int st[5000005];
int dr[5000005];
int main()
{
    ifstream f("deque.in");
    ofstream g("deque.out");
    int n,k;
    f>>n>>k;
    for(int i=1;i<=n;++i){
        f>>v[i];
    }
    st[0]=2000000000;
    for(int i=1;i<=n;++i){
        if(i%k==1){
            st[i]=v[i];
        }
        else{
            st[i]=min(st[i-1],v[i]);
        }
    }
    dr[n+1]=2000000000;
    for(int i=n;i>=1;--i){
        if(i%k==0 or i==n){
            dr[i]=v[i];
        }
        else{
            dr[i]=min(dr[i+1],v[i]);
        }
    }
    int minim=0;
    long long  suma=0;
    for(int i=1;i<=n-k+1;++i){
        minim=min(dr[i],st[i+k-1]);
        suma+=minim;
    }
    g<<suma;
    f.close();
    g.close();
    return 0;
}