Pagini recente » Cod sursa (job #1931180) | Cod sursa (job #236676) | Cod sursa (job #1922617) | Cod sursa (job #3189223) | Cod sursa (job #1276672)
#include <fstream>
using namespace std;
int n, k, pr, ul;
struct coada
{
int val, poz;
} q[5000002];
int main()
{
int i, x;
long long s;
ifstream fin("deque.in");
fin >> n >> k;
pr = ul = 1;
fin >> x;
q[pr].val = x;
q[pr].poz = 1;
for (i = 2; i <= k; i++)
{
fin >> x;
while (pr <= ul && q[ul].val > x)
ul--;
q[++ul].val = x;
q[ul].poz = i;
}
s = q[pr].val;
for (i = k + 1; i <= n; i++)
{
fin >> x;
while (pr <= ul && q[ul].val > x)
ul--;
q[++ul].val = x;
q[ul].poz = i;
if (q[pr].poz < i - k + 1)
pr++;
s += q[pr].val;
}
fin.close();
ofstream fout("deque.out");
fout << s;
fout.close();
return 0;
}