Pagini recente » Cod sursa (job #2928602) | Cod sursa (job #1493621) | Cod sursa (job #2701500) | Cod sursa (job #2485023) | Cod sursa (job #469850)
Cod sursa(job #469850)
#include <fstream>
#include <deque>
#include <utility>
#include <algorithm>
using namespace std;
deque < pair < int, int > > dq;
int n, k;
int main()
{
int i, x;
long long s = 0;
ifstream f ( "deque.in" );
ofstream g ( "deque.out" );
f >> n >> k;
for ( i = 0; i < k; ++ i ){
f >> x;
if ( dq . empty () )
dq . push_back ( make_pair ( x, i ) );
else{
while ( ! dq . empty () && dq . back () . first > x )
dq . pop_back ();
dq . push_back ( make_pair ( x, i ) );
}
}
s += dq . front () . first;
for ( ; i < n; ++ i ){
f >> x;
while ( ! dq . empty () && dq . back () . first > x )
dq . pop_back ();
dq . push_back ( make_pair ( x, i ) );
if ( dq . front () . second == i - k )
dq . pop_front ();
s += dq . front () . first;
}
g << s << '\n';
f . close ();
g . close ();
return 0;
}