Pagini recente » Cod sursa (job #1465782) | Cod sursa (job #1614250) | Cod sursa (job #1241468) | Cod sursa (job #2053823) | Cod sursa (job #578263)
Cod sursa(job #578263)
#include <fstream>
#include <deque>
#define i64 long long
using namespace std;
i64 A[5000100];
deque <i64> D;
int main()
{
ifstream in ("deque.in");
i64 N, K, S, i;
in >> N >> K;
for(i = 1; i <= N; i++)
in >> A[i];
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;
}