Cod sursa(job #2815377)

Utilizator SerbaP123Popescu Serban SerbaP123 Data 9 decembrie 2021 15:46:17
Problema Deque Scor 0
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.94 kb
#include <fstream>
using namespace std;

ifstream cin("deque.in");
ofstream cout("deque.out");

int n, k;
int a[100001];
int log2[100001];
int v[100001][25], l;

int main(){
    cin >> n >> k;
    for(int i = 1; i <= n; ++i){
        cin >> a[i];
    }
    log2[1] = 0;
    for(int i = 2; i <= n; i++)
        log2[i] = log2[i >> 1] + 1;
    int len = log2[n];
    for(int i = 1; i <= n; ++i){
        v[i][0] = a[i];
    }
    for(int i = 1; i <= len; i++)
    {
        int sf = n - (1 << i) + 1;
        l = 1 << (i - 1);
        for(int j = 1;j <= sf; j++)
            v[j][i] = min(v[j][i - 1], v[j + l][i - 1]);
    }
    int st, dr, ans = 0;
    for(int i = 1; dr < n; ++i){
        st = i;
        dr = i + k - 1;
        int l = log2[dr - st + 1];
        ans += min(v[st][l], v[dr - (1 << l) + 1][l]);
    }
    cout << ans;
    return 0;
}
///l=log2[dr-st+1];
///fout << min(v[st][l],v[dr-(1<<l)+1][l]) << '\n';