Cod sursa(job #2036103)

Utilizator rares1012Rares Cautis rares1012 Data 10 octombrie 2017 12:05:17
Problema Deque Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.7 kb
#include <stdio.h>
#include <stdlib.h>

int v[5000000][2];

int main()
{
    int n,k,q=2000000000,poz,first=0,i;
    long long s=0;
    FILE*fi,*fo;
    fi=fopen("deque.in","r");
    fo=fopen("deque.out","w");
    fscanf(fi,"%d%d",&n,&k);
    for(i=0; i<n; i++)
    {
        fscanf(fi,"%d",&q);
        if(i==0)
            poz=0;
        else
        {
            while(poz>first && v[poz-1][0]>=q)
                poz--;
        }
        v[poz][0]=q;
        v[poz][1]=i;
        poz++;
        if(i-v[first][1]==k)
            first++;
        if(i+1>=k){
            s+=v[first][0];
            printf("%d ",v[first][0]);
        }
    }
    fprintf(fo,"%lld",s);
    fclose(fi);
    fclose(fo);
    return 0;
}