Pagini recente » Cod sursa (job #1136668) | Cod sursa (job #1939235) | Cod sursa (job #3280610) | Cod sursa (job #349534) | Cod sursa (job #615647)
Cod sursa(job #615647)
#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;
}