Cod sursa(job #1052143)

Utilizator minisudiGeorge Alexandru minisudi Data 10 decembrie 2013 21:28:31
Problema Deque Scor 5
Compilator c Status done
Runda Arhiva educationala Marime 0.63 kb
#include<stdio.h>
#include<stdlib.h>
FILE *f,*g;
int main()
{
    int N,K,sfarsit=0,inceput=-1,i;
    long long A[100],Deque[100],Suma=0;
    f=fopen("deque.in","r");
    g=fopen("deque.out","w");
    fscanf(f,"%d",&N);
    fscanf(f,"%d",&K);
    for(i=0;i<N;i++)
         fscanf(f,"%llu",&A[i]);
    for(i=0;i<N;i++)
    {
        while(sfarsit<=inceput && A[i]<=A[Deque[inceput]])
            inceput=inceput-1;
        Deque[++inceput]=i;
        if(Deque[sfarsit]==i-K)
            sfarsit=sfarsit+1;
        if(i>=K-1)
            Suma=Suma+A[Deque[sfarsit]];
    }
    fprintf(g,"%llu",Suma);
    return 0;
}