Cod sursa(job #2888348)
| Utilizator | Data | 10 aprilie 2022 23:25:08 | |
|---|---|---|---|
| Problema | Deque | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.6 kb |
#include <fstream>
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
int poz[5000001], v[5000001];
int n, k,st,dr;
long long s;
int main()
{
s=0;
fin>>n>>k;
for(int i = 1; i <= n; i++)
fin>>v[i];
st=1;
dr=0;
for(int i = 1; i <= n; i++) {
while(st<=dr && v[i] <= v[poz[dr]])
{
dr--;
}
dr++;
poz[dr]=i;
if(i >= k) {
s += v[poz[st]];
if(poz[st] == i - k + 1) {
st++;
}
}
}
fout<<s;
return 0;
}
