Cod sursa(job #3361403)
| Utilizator | Data | 23 iulie 2026 19:32:27 | |
|---|---|---|---|
| Problema | Deque | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.64 kb |
#include <fstream>
#include <deque>
#define DIM 5000001
using namespace std;
int v[DIM];
deque<int> d;
int n, p, u, i, k;
long long suma = 0;
int main () {
ifstream fin ("deque.in");
ofstream fout("deque.out");
fin>>n>>k;
for (i=1;i<=n;i++) fin>>v[i];
d.push_back(1);
if (k == 1)suma = v[1];
for (i=2;i<=n;i++) {
while (!d.empty() && v[i] <= v[d.back()])
d.pop_back();
d.push_back(i);
if (i - d.front() == k)
d.pop_front();
if (i >= k) {
suma += v[ d.front() ];
}
}
fout<<suma;
return 0;
}
