Cod sursa(job #1114042)

Utilizator bogdanpaunFMI Paun Bogdan Gabriel bogdanpaun Data 21 februarie 2014 11:01:14
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include <fstream>
#include <deque>

using namespace std;
int N,k,a[5000005];
long long sum;
deque<int> D;

int main()
{
    ifstream f("deque.in");
    f>>N>>k;
    for(register int i=1 ; i<=N ; ++i )
        f>>a[i];
    f.close();
    for(register int i=1;i<=N;++i){
        while( !D.empty() && a[ D.back() ] >= a[i]  ) D.pop_back();
        D.push_back(i);
        if( D.front() == i-k ) D.pop_front();
        if(i>=k) sum+=a[D.front()];
    }
    ofstream g("deque.out");
    g<<sum;
    g.close();
    return 0;
}