Cod sursa(job #1362804)

Utilizator alexmisto342Turdean Alexandru alexmisto342 Data 26 februarie 2015 15:38:06
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 4.2 kb
#include <fstream>
#include <deque>
using namespace std;
ifstream f("deque.in");
ofstream g("deque.out");
deque<int> D;
int i,j,n,k,v[5000001];
long long int rasp;
int main()
{
    f>>n>>k;
    for(i=1;i<=n;++i)
        f>>v[i];
    for(i=1;i<=n;i++)
    {
        if(!D.empty()&&D.front()<=i-k)
            D.pop_front();
        while(!D.empty()&&v[i]<v[D.back()])
             {
                 D.pop_back();
                 continue;
                  D.push_back(i);
        if(i>=k)
            rasp+=v[D.front()]; D.push_back(i);
        if(i>=k)
            rasp+=v[D.front()]; D.push_back(i);
        if(i>=k)
            rasp+=v[D.front()]; D.push_back(i);
        if(i>=k)
            rasp+=v[D.front()]; D.push_back(i);
        if(i>=k)
            rasp+=v[D.front()]; D.push_back(i);
        if(i>=k)
            rasp+=v[D.front()]; D.push_back(i);
        if(i>=k)
            rasp+=v[D.front()]; D.push_back(i);
        if(i>=k)
            rasp+=v[D.front()]; D.push_back(i);
        if(i>=k)
            rasp+=v[D.front()]; D.push_back(i);
        if(i>=k)
            rasp+=v[D.front()]; D.push_back(i);
        if(i>=k)
            rasp+=v[D.front()]; D.push_back(i);
        if(i>=k)
            rasp+=v[D.front()]; D.push_back(i);
        if(i>=k)
            rasp+=v[D.front()]; D.push_back(i);
        if(i>=k)
            rasp+=v[D.front()]; D.push_back(i);
        if(i>=k)
            rasp+=v[D.front()]; D.push_back(i);
        if(i>=k)
            rasp+=v[D.front()]; D.push_back(i);
        if(i>=k)
            rasp+=v[D.front()]; D.push_back(i);
        if(i>=k)
            rasp+=v[D.front()]; D.push_back(i);
        if(i>=k)
            rasp+=v[D.front()]; D.push_back(i);
        if(i>=k)
            rasp+=v[D.front()]; D.push_back(i);
        if(i>=k)
            rasp+=v[D.front()]; D.push_back(i);
        if(i>=k)
            rasp+=v[D.front()]; D.push_back(i);
        if(i>=k)
            rasp+=v[D.front()]; D.push_back(i);
        if(i>=k)
            rasp+=v[D.front()]; D.push_back(i);
        if(i>=k)
            rasp+=v[D.front()]; D.push_back(i);
        if(i>=k)
            rasp+=v[D.front()]; D.push_back(i);
        if(i>=k)
            rasp+=v[D.front()]; D.push_back(i);
        if(i>=k)
            rasp+=v[D.front()]; D.push_back(i);
        if(i>=k)
            rasp+=v[D.front()]; D.push_back(i);
        if(i>=k)
            rasp+=v[D.front()]; D.push_back(i);
        if(i>=k)
            rasp+=v[D.front()]; D.push_back(i);
        if(i>=k)
            rasp+=v[D.front()]; D.push_back(i);
        if(i>=k)
            rasp+=v[D.front()]; D.push_back(i);
        if(i>=k)
            rasp+=v[D.front()]; D.push_back(i);
        if(i>=k)
            rasp+=v[D.front()]; D.push_back(i);
        if(i>=k)
            rasp+=v[D.front()]; D.push_back(i);
        if(i>=k)
            rasp+=v[D.front()]; D.push_back(i);
        if(i>=k)
            rasp+=v[D.front()]; D.push_back(i);
        if(i>=k)
            rasp+=v[D.front()]; D.push_back(i);
        if(i>=k)
            rasp+=v[D.front()]; D.push_back(i);
        if(i>=k)
            rasp+=v[D.front()]; D.push_back(i);
        if(i>=k)
            rasp+=v[D.front()]; D.push_back(i);
        if(i>=k)
            rasp+=v[D.front()]; D.push_back(i);
        if(i>=k)
            rasp+=v[D.front()]; D.push_back(i);
        if(i>=k)
            rasp+=v[D.front()]; D.push_back(i);
        if(i>=k)
            rasp+=v[D.front()]; D.push_back(i);
        if(i>=k)
            rasp+=v[D.front()]; D.push_back(i);
        if(i>=k)
            rasp+=v[D.front()]; D.push_back(i);
        if(i>=k)
            rasp+=v[D.front()]; D.push_back(i);
        if(i>=k)
            rasp+=v[D.front()]; D.push_back(i);
        if(i>=k)
            rasp+=v[D.front()]; D.push_back(i);
        if(i>=k)
            rasp+=v[D.front()]; D.push_back(i);
        if(i>=k)
            rasp+=v[D.front()]; D.push_back(i);
        if(i>=k)
            rasp+=v[D.front()]; D.push_back(i);
        if(i>=k)
            rasp+=v[D.front()];
             }
        D.push_back(i);
        if(i>=k)
            rasp+=v[D.front()];
    }
    g<<rasp;
    return 0;
}