Cod sursa(job #1497202)

Utilizator meeprrMelinte Paul meeprr Data 6 octombrie 2015 14:12:20
Problema Deque Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <fstream>

using namespace std;

int vec[50000001],counter;
ifstream f("deque.in");
ofstream g("deque.out");


int minim(int a,int b)
{
    int mini = 10000001;

    for(int i=a; i<=b; i++)
    {
        if (vec[i]<mini) {mini=vec[i]; counter=i;}
    }
    return mini;
}

int main()
{
    int n,aux,k,mini;

    f>>n>>k;
    for(int i=1;i<=n;i++) f>>vec[i];

    mini=minim(1,k);
    long long int sum=mini;


    for (int i=k+1;i<=n;i++)
    {
        counter--;
        if (counter==0)
        {
            mini=minim(i-k+1,i);
            counter=counter-i+k;
        }
        else if(mini>vec[i])
        {
            mini=vec[i];
            counter=k;
        }
        sum+=mini;
    }

    g<<sum;

    g.close();
    return 0;
}