Cod sursa(job #2036094)

Utilizator rares1012Rares Cautis rares1012 Data 10 octombrie 2017 11:58:33
Problema Deque Scor 10
Compilator c Status done
Runda Arhiva educationala Marime 0.62 kb
#include <stdio.h>
#include <stdlib.h>

int v[5000000][2];

int main()
{
    int n,k,q=2000000000,poz,first=0,s=0,i;
    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(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];
    }
    fprintf(fo,"%d",s);
    fclose(fi);
    fclose(fo);
    return 0;
}