Pagini recente » Cod sursa (job #2678075) | Cod sursa (job #2031126) | Cod sursa (job #1598873) | Cod sursa (job #457386) | Cod sursa (job #723094)
Cod sursa(job #723094)
#include <fstream>
#include <deque>
using namespace std;
long M[5000005];
int main(void)
{
long long N,i,K,S;
fstream fin("deque.in",ios::in);
fstream fout("deque.out",ios::out);
fin >> N >> K;
for (i = 0;i < N;i += 1)
{
fin >> M[i];
}
deque<long long> D;
S = 0;
for (i = 0;i < N;i += 1)
{
while ((D.size() > 0) && (M[D.back()] > M[i]))
{
D.pop_back();
}
D.push_back(i);
if (i >= (K - 1))
{
S += M[D.front()];
if (D.front() <= (i - K + 1))
{
D.pop_front();
}
}
}
fout << S;
fin.close();
fout.close();
return 0;
}