Pagini recente » Cod sursa (job #273252) | Cod sursa (job #379138) | Cod sursa (job #334075) | Cod sursa (job #1581204) | Cod sursa (job #578257)
Cod sursa(job #578257)
#include <fstream>
#include <deque>
#define i64 long long
using namespace std;
i64 A[5000100];
int main()
{
ifstream in ("deque.in");
i64 N, K, S, i;
in >> N >> K;
for(i = 1; i <= N; i++)
in >> A[i];
deque <i64> D;
for(i = 1; i <= K; i++)
{
while(!D.empty() && A[D.back()] > A[i])
D.pop_back();
D.push_back(i);
}
S = A[D.front()];
for(i = 1; i <= N - K; i++)
{
if(D.front() == i)
D.pop_front();
while(!D.empty() && A[D.back()] > A[i + K])
D.pop_back();
D.push_back( i + K );
S += A[D.front()];
}
ofstream out("deque.out");
out << S;
return 0;
}