Cod sursa(job #1314001)

Utilizator danielmaxim95FMI Maxim Daniel danielmaxim95 Data 11 ianuarie 2015 13:45:40
Problema Deque Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <cstdio>

using namespace std;

int v[5000000],n,k,pm,vm;
long long int s;

void cauta(int j)
{
    int i;
    vm=v[j];
    pm=j;
    for(i=j;i<j+k;i++)
        if(v[i]<vm)
        {
            vm=v[i];
            pm=i;
        }
}

int main()
{
    int i;
    FILE *f=fopen("deque.in","r");

    fscanf(f,"%d%d",&n,&k);
    for(i=1;i<=n;i++)
        fscanf(f,"%d",&v[i]);
    fclose(f);

    cauta(1);
    s=vm;

    for(i=k+1;i<=n;i++)
    {
        if(i-pm>=k)
            cauta(pm+1);
        if(v[i]<vm)
        {
            vm=v[i];
            pm=i;
        }
        s+=vm;
    }

    f=fopen("deque.out","w");
    fprintf(f,"%lld",s);
    fclose(f);
    return 0;
}