Cod sursa(job #1313965)

Utilizator danielmaxim95FMI Maxim Daniel danielmaxim95 Data 11 ianuarie 2015 13:05:03
Problema Deque Scor 15
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include <cstdio>

using namespace std;

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

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

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

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

    cauta(0);
    s=vm;

    for(i=k;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,"%d",s);
    fclose(f);
    return 0;
}