Pagini recente » Cod sursa (job #31344) | Cod sursa (job #555509) | Cod sursa (job #3165714) | Cod sursa (job #2720346) | Cod sursa (job #675529)
Cod sursa(job #675529)
#include <fstream>
#include <deque>
#include <vector>
using namespace std;
typedef int Int32;
typedef unsigned UInt32;
typedef long long Int64;
int main()
{
ifstream f("deque.in");
ofstream g("deque.out");
UInt32 N,K;
f>>N>>K;
deque< pair<UInt32,Int64> > d;
Int64 sum = 0L;
for(UInt32 i=0u;i<N;++i)
{
Int64 x; f>>x;
if(!d.empty() && i >= K && d.front().first == i - K)
d.pop_front();
while(!d.empty() && x < d.back().second)
d.pop_back();
d.push_back( pair<int,int>(i,x) );
if(i >= K - 1)
sum += d.front().second;
}
g << sum;
return 0;
}