Cod sursa(job #1052044)

Utilizator minisudiGeorge Alexandru minisudi Data 10 decembrie 2013 20:31:24
Problema Deque Scor 0
Compilator c Status done
Runda Arhiva educationala Marime 0.65 kb
#include<stdio.h>
FILE*f,*g;
int main()
{
    int A[5000000],N,deque[5000000],K,sfarsit=1,inceput=0,i,Suma;
    f=fopen("deque.in","r");
    g=fopen("deque.out","w");
    if(f!=NULL)
    {
        fscanf(f,"%d",&N);
        fscanf(f,"%d",&K);
        for(i=0;i<N;i++)
            fscanf(f,"%d",&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)
            Suma=Suma+A[deque[sfarsit]];
    }
    printf("Suma ceruta este %d ",Suma);
    return 0;
}