Pagini recente » Cod sursa (job #1861775) | Cod sursa (job #1115792) | Cod sursa (job #1496717) | Cod sursa (job #1931504) | Cod sursa (job #1495690)
#include <fstream>
#include <deque>
using namespace std;
ifstream in( "deque.in" );
ofstream out( "deque.out" );
struct shp
{
int poz, val;
};
deque <shp> d;
void elimin( int val )
{
while( d.empty()==0 && d.back().val >= val )
{
d.pop_back();
}
}
int main( )
{
int N, K, x;
long long Ans= 0;
shp aux;
in >> N >> K;
for( int i= 1; i<=K; ++i )
{
in >> x;
elimin( x );
aux.poz= i;
aux.val= x;
d.push_back( aux );
}
Ans+= d.front().val;
for( int i= K+1; i<=N; ++i )
{
in >> x;
if( d.front().poz <= i-K ) d.pop_front();
elimin( x );
aux.val= x;
aux.poz= i;
d.push_back( aux );
Ans+= d.front().val;
}
out << Ans << '\n';
return 0;
}