Cod sursa(job #2059501)

Utilizator shoezHarry Girlea shoez Data 7 noiembrie 2017 09:26:12
Problema Deque Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <iostream>
#include <stdio.h>

using namespace std;
int v[5000000], d[5000000];

int main()
{
    FILE *fin,*fout;
    int st, dr, n, i, k, sum;
    fin = fopen("deque.in","r");
    fout = fopen("deque.out","w");
    fscanf(fin,"%d%d",&n,&k);
    for( i = 0; i < n; i++ ){
        fscanf(fin,"%d",&v[i]);
    }
    st = 0;
    dr = 1;
    sum = 0;
    for( i = 0; i <= n; i++ ){
        if( st <= dr && d[st] == i - k )
            st++;
        while( st <= dr && v[i] <= v[d[dr]] )
            dr--;
        d[++dr] = i;
        if( i >= k - 1 )
            sum = sum + v[d[st]];
    }
    fprintf(fout,"%d",sum);
    fclose(fin);
    fclose(fout);
    return 0;
}