Cod sursa(job #3328205)

Utilizator Andrei_PanaAndrei Pana Andrei_Pana Data 6 decembrie 2025 21:38:52
Problema Deque Scor 100
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.79 kb
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
  
#define MAXN 5000000
#define QSIZE 5000000 //MAXK
  
int deque[QSIZE],prim,ultim;

int rsp[MAXN]; 
 
int main(){ 
  int n,k,i,nr,scos;
  FILE *fin,*fout;
 
  fin=fopen("deque.in","r"); 
  fscanf(fin,"%d%d",&n,&k);
  for(i=0;i<n;i++){
    if(i>=k){
      scos=deque[prim];
      if(scos==rsp[i-k]){
        prim=(prim+1)%QSIZE;
      }
      rsp[i-k]=scos;
    }
    fscanf(fin,"%d",&nr);
    rsp[i]=nr;
    while(ultim!=prim&&deque[(ultim-1+QSIZE)%QSIZE]>nr){
      ultim=(ultim-1+QSIZE)%QSIZE;
    }
    deque[ultim]=nr;
    ultim=(ultim+1)%QSIZE;
  }
  rsp[n-k]=deque[prim];
  fclose(fin);
  
  fout=fopen("deque.out","w");
  long long ans=0;
  for(i=0;i<n-k+1;i++){
    ans+=rsp[i];
  }
  fprintf(fout,"%lld\n",ans);
  fclose(fout);
  
  return 0;
}