Cod sursa(job #2933750)
| Utilizator | Data | 5 noiembrie 2022 12:56:15 | |
|---|---|---|---|
| Problema | Deque | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.66 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
int coada[5000001],v[5000001];
int main(){
int n,k,inc=0,sf=0,i;
long long s=0;
fin>>n>>k;
v[0]=-10000001;
for (i=1;i<=n;i++){
fin>>v[i];
if (i<k){
while (v[i]<v[coada[sf]]&&inc<=sf)
sf--;
coada[++sf]=i;
}
else {
if (i-k>=coada[inc])
inc++;
while (v[i]<v[coada[sf]]&&inc<=sf)
sf--;
coada[++sf]=i;
s+=v[coada[inc]];
}
}
fout<<s;
return 0;
}
