Cod sursa(job #1630844)

Utilizator georgerapeanuRapeanu George georgerapeanu Data 5 martie 2016 11:39:03
Problema Deque Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.88 kb
#include <cstdio>
#include <deque>
using namespace std;
FILE *f=fopen("deque.in","r");
FILE *g=fopen("deque.out","w");
deque <long long> D;
int a,b,c,d,e;
long long N,K,i,X[5000000],suma;
int main()
{
    fscanf(f,"%lld %lld",&N,&K);
    for(i=1;i<=N;i++)
        fscanf(f,"%lld",&X[i]);
    for(i=1;i<=N;i++)
    {
        if(i<K)
        {
            D.push_back(i);
        }
        else
        {
            while(!D.empty()&&X[D.back()]>=X[i])
            {
                a=D.back();
                D.pop_back();
            }
            if(!D.empty())
            {
                suma+=X[D.front()];
            }
            else
                suma+=X[i];
            if(!D.empty()&&D.front()<=i+1-K)
            D.pop_front();
            D.push_back(i);
        }
    }
    fprintf(g,"%d",suma);
    fclose(f);
    fclose(g);
    return 0;
}