Pagini recente » Cod sursa (job #925801) | Cod sursa (job #175282) | Cod sursa (job #2769140) | Cod sursa (job #1668572) | Cod sursa (job #597854)
Cod sursa(job #597854)
#include <iostream>
#include <fstream>
#include <deque>
using namespace std;
deque <int> D;
int N, K, X[5000005];
long long S;
ifstream fin ("deque.in");
ofstream fout ("deque.out");
int main()
{
int i;
fin >> N >> K;
for (i=1; i<=N; ++i)
{
fin >> X[i];
while (!D.empty () && X[D.back ()]>=X[i])
{
D.pop_back ();
}
D.push_back (i);
if (D.front ()<=i-K)
{
D.pop_front ();
}
if (i>=K)
{
S+=X[D.front ()];
}
}
fout << S << "\n";
fin.close ();
fout.close ();
return 0;
}