Cod sursa(job #1677461)

Utilizator ButmalaiDanButmalai Dan ButmalaiDan Data 6 aprilie 2016 16:40:16
Problema Deque Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include<fstream>
#include<deque>
ifstream cin("deque.in")
ofstream cout("deque.out");
using namespace std;
int a[5000010];
long long sum;
int n,k;
deque <int> D;
void add(int x){
	
	while(!D.empty()&&a[D.back()]>=a[x]){
		D.pop_back();}	
		D.push_back(x);
	while(x-D.front()+1>k)D.pop_front();
	
}
int main(){
    ios::sync_with_stdio(false);
	cin.tie(0);
	cin>>n>>k;
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}
	for(int i=1;i<=k;i++){
		add(i);}
		sum+=a[D.front()];
	for(int i=k+1;i<=n;i++){
		add(i);
		sum+=a[D.front()];
	}
	cout<<sum;
}