Cod sursa(job #1929114)
| Utilizator | Data | 17 martie 2017 09:23:11 | |
|---|---|---|---|
| Problema | Deque | Scor | 25 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.58 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("deque.in"); ofstream g("deque.out");
int n, i, k, s, a[5000005], d[5000005], st, dr;
int main()
{
f>>n>>k;
for(i = 1; i <= n; ++i) {
f>>a[i];
}
st = 1;
dr = 0;
s = 0;
for(i = 1; i <= n; ++i) {
while (st <= dr && a[i] <= a[d[dr]]) {
--dr;
}
++dr;
d[dr] = i;
if (d[st] == i - k) {
++st;
}
if (i >= k) {
s += a[d[st]];
}
}
g<<s;
return 0;
}
