Cod sursa(job #2162702)

Utilizator bodea.georgianaBodea Georgiana bodea.georgiana Data 12 martie 2018 13:01:20
Problema Deque Scor 25
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include <stdio.h>
#include <iostream>
#include <deque>

using namespace std;
FILE *f,*g;
int v[5000009];
int q[5000009];

int main()
{
    int n,k,i,j,x,y,ss=0,ps=1,pi=0;
    f=fopen("deque.in","r");
    g=fopen("deque.out","w");

    fscanf(f,"%d %d",&n,&k);
    for(i=1;i<=n;++i)
      fscanf(f,"%d",&v[i]);
    for(i=1;i<=n;++i)
    {
        while(ps<=pi && v[i]<=v[q[pi]])
          --pi;
        q[++pi]=i;
        if(i>=k)
          ss+=v[q[ps]];
        if(q[ps]==i-k+1)
          ++ps;
    }
    fprintf(g,"%d",ss);

    fclose(f);
    fclose(g);
    return 0;
}