Cod sursa(job #1452224)

Utilizator mikeshadowIon Complot mikeshadow Data 20 iunie 2015 13:29:01
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include <iostream>
#include <fstream>
#include <deque>
#include <algorithm>
 
using namespace std;
 
ifstream fin("deque.in");
ofstream fout("deque.out");
 
int a[5000000];
long long rez=0;
int n,k;

deque<int> v; 
 
int main()
{
    fin>>n>>k;
 
    for (int i=0; i<n; i++)
        fin>>a[i];
        
    for (int i=0; i<n; i++)
	{
		while (!v.empty() && a[v.back()]>=a[i])
			v.pop_back();
		v.push_back(i);		
		if (i>=k)
			while (!v.empty() && v.front()<=i-k) v.pop_front();
		if (i>=k-1)
		{
			rez+=a[v[0]];
		}
	}
 
    fout<<rez;
 
    return 0;
}