Pagini recente » Cod sursa (job #2164775) | Cod sursa (job #1439779) | Cod sursa (job #1511622) | Cod sursa (job #869004) | Cod sursa (job #2088685)
#include <fstream>
#include <deque>
#include <vector>
using namespace std;
ifstream f("deque.in");
ofstream g("deque.out");
deque<long> Deque;
vector<long> V;
int main()
{
long N,K,A;
long long Sum=0;
f>>N>>K;
for(long i=0;i<N;i++)
{
f>>A;
V.push_back(A);
if(!Deque.empty() && Deque.front()<=i-K)
Deque.pop_front();
if (Deque.empty()) Deque.push_back(i);
else
{
if(V[Deque.back()]<=A) Deque.push_back(i);
else
{
while(V[Deque.back()]>=A && !Deque.empty()) Deque.pop_back();
Deque.push_back(i);
}
}
if(i>=K-1)
Sum+=V[Deque.front()];
}
g<<Sum;
return 0;
}