Cod sursa(job #2113052)
| Utilizator | Data | 24 ianuarie 2018 10:54:18 | |
|---|---|---|---|
| Problema | Deque | Scor | 25 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.54 kb |
#include <fstream>
using namespace std;
ifstream in("deque.in");
ofstream out("deque.out");
const int N = 500000;
int n, k, dq[N], v[N], sum;
int main()
{
int dr = -1, st = 0;
in >> n >> k;
for (int i = 0; i < n; i++) {
in >> v[i];
if (dq[st] == i - k) st++;
while (st <= dr && v[dq[dr]] >= v[i]) dr--;
dq[++dr] = i;
if (i >= k - 1) {
sum += v[dq[st]];
//out << v[dq[st]] << ' ';
}
}
//out << '\n';
out << sum;
}
