Cod sursa(job #1677492)

Utilizator valentin50517Vozian Valentin valentin50517 Data 6 aprilie 2016 16:55:09
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include <fstream>
#include <deque>

using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");

int A[5000100],N,K;
long long sum;
deque<int> D;
void add(int i){
	while(!D.empty() && A[D.back()] >= A[i]) D.pop_back();
	D.push_back(i);
	while(i - D.front() + 1 > K) D.pop_front();
}
int main(){
	ios::sync_with_stdio(0);
	fin.tie(0);
	fin >> N >> K;
	for(int i = 0;i<N;i++) fin >> A[i];
	for(int i = 0;i<K;i++) add(i);
	sum+=A[D.front()];
	for(int i = K;i<N;i++){
		add(i);
		sum+=A[D.front()];
	}
	fout << sum;
	return 0;
}