Pagini recente » Cod sursa (job #999205) | Cod sursa (job #1491788) | Cod sursa (job #1127144) | Cod sursa (job #2036607) | Cod sursa (job #1203278)
using namespace std;
#include <fstream>
ifstream fin("deque.in");
ofstream fout("deque.out");
const int Nmax = 5000000;
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;
}