Cod sursa(job #2888942)
| Utilizator | Data | 11 aprilie 2022 23:19:15 | |
|---|---|---|---|
| Problema | Deque | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.54 kb |
#include <iostream>
#include <fstream>
#include <deque>
#define max1 5000010
using namespace std;
std::ifstream f("deque.in");
std::ofstream g("deque.out");
int n, k, v[max1], d[max1], a=1, b=0;
long long s=0;
int main()
{
int i;
f >> n >> k;
for(i=1; i<=n; i++)
f >> v[i];
for(i=1; i<=n; i++)
{
while(a<=b && v[i] <= v[d[b]])
b--;
b++;
d[b] = i;
if(d[a] == i-k)
a++;
if(i>=k)
s += v[d[a]];
}
g<<s;
}
