Cod sursa(job #2530211)

Utilizator teodortatomirTeodor Tatomir teodortatomir Data 24 ianuarie 2020 15:25:08
Problema Deque Scor 0
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.69 kb
#include <stdio.h>
#include <stdlib.h>

int coada[5000001],v[5000001];
int main(){
  FILE *fin,*fout;
  long long int n,k,i,prim,ultim,s;

  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]);
  prim=ultim=0;
  coada[0]=v[0];
  for(i=1;i<k;i++){
    while(ultim>=prim && v[i]<coada[ultim])
      ultim--;
    ultim++;
    coada[ultim]=v[i];
  }
  s=coada[prim];
  for(i=k;i<n;i++){
    if(v[i-k]==coada[prim])
      prim++;
    while(ultim>=prim && v[i]<coada[ultim])
      ultim--;
    ultim++;
    coada[ultim]=v[i];
    s+=coada[prim];
  }
  fclose(fin);

  fprintf(fout, "%d\n", s);
  fclose(fout);
  return 0;
}