Pagini recente » Cod sursa (job #1691082) | Cod sursa (job #347285) | Cod sursa (job #800300) | Cod sursa (job #671304) | Cod sursa (job #1203281)
using namespace std;
#include <fstream>
ifstream fin("deque.in");
ofstream fout("deque.out");
const int Nmax = 5000010;
int first = 0, last = -1;
int v[Nmax], deq[Nmax];
long long s = 0;
int main()
{
int i, n, k;
fin >> n >> k;
for(i = 1; i < k; ++i)
{
fin >> v[i]; deq[++last] = i;
while(first < last && v[deq[last-1]] >= v[deq[last]]) deq[last-1] = deq[last], --last;
}
for(i = k; i <= n; ++i)
{
fin >> v[i]; deq[++last] = i;
while(first < last && v[deq[last-1]] >= v[deq[last]]) deq[last-1] = deq[last], --last;
s += v[deq[first]];
if(deq[first] == i - k +1) ++first;
}
fout << s << '\n';
return 0;
}