Cod sursa(job #3325757)

Utilizator CosminaneBoac Mihai Cosmin Cosminane Data 26 noiembrie 2025 12:54:18
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.79 kb
#include <fstream>
#include <iostream>
#include <vector>
#include <deque>
using namespace std;
vector <int> v;
deque <int> q;
void add_elem( int i ){
	while( q.empty() == false && v[i] < v[q.back()] ){
		q.pop_back();
	}
	q.push_back( i );
}
void del_elem( int i ){
	while( q.front() <= i ){
		q.pop_front();
	}
}
int main(){
	int n, k, i, x;
	long long ras;
	ifstream fin( "deque.in" );
	ofstream fout( "deque.out" );
	fin >> n >> k;
	for( i = 0; i < k - 1; i++ ){
		fin >> x;
		v.push_back( x );
		add_elem( i );
	}
	ras = 0;
	for( i = k - 1; i < n; i++ ){
		fin >> x;
		v.push_back( x );
		add_elem( i );
		del_elem( i - k );
		ras += v[q.front()];
		/*for( int j = 0; j < q.size(); j++ ){
			cout << v[q[j]] << ' ';
		}
		cout << '\n';*/
	}
	fout << ras;
	return 0;
}