Cod sursa(job #615647)

Utilizator BitOneSAlexandru BitOne Data 10 octombrie 2011 14:54:43
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include <queue>
#include <fstream>
#include <cstdlib>
#include <iterator>
#include <algorithm>
#define N_MAX

using namespace std;
deque< int > dQ;
vector< int > v;
int main( void )
{
	int N, K, i;
	long long int s=0;
	ifstream in( "deque.in" );
	in>>N>>K;
	copy( istream_iterator<int>( in ), istream_iterator<int>(), back_inserter(v) );
	for( i=0, --K; i < N; ++i )
	{
		for( ; !dQ.empty() && v[i] <= v[dQ.back()]; dQ.pop_back() );
		dQ.push_back(i);
		if( i >= K )
			s+=v[dQ.front()];
		if( i-K == dQ.front() )
			dQ.pop_front();
	}
	ofstream out( "deque.out" );
	out<<s<<'\n';
	return EXIT_SUCCESS;
}