Cod sursa(job #2283935)
Utilizator | Data | 16 noiembrie 2018 09:22:49 | |
---|---|---|---|
Problema | Deque | Scor | 25 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.6 kb |
#include <bits/stdc++.h>
using namespace std;
long long v[5000005], d[5000005];
int main()
{
ifstream fin("deque.in");
ofstream fout("deque.out");
int n, k, st=1, dr=0, x, i, S = 0;
fin >> n >> k;
for(i = 0; i < k; ++i)
{
fin >> v[i];
while(st <= dr && v[d[dr]] > v[i])
--dr;
d[++dr] = i;
}
S += v[d[st]];
for(; i < n; ++i)
{
if(d[st] <= i-k)
++st;
fin >> v[i];
while(st <= dr && v[d[dr]] > v[i])
--dr;
d[++dr] = i;
S += v[d[st]];
}
fout << S;
return 0;
}