Cod sursa(job #2576650)
Utilizator | Adrian Tonica Yeto | Data | 6 martie 2020 21:23:44 |
---|---|---|---|
Problema | Deque | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.51 kb |
#include <fstream>
using namespace std;
int n, k, i, p, u, v[5000001], d[5000001];
long long sol;
ifstream fin ("deque.in");
ofstream fout ("deque.out");
int main () {
fin>>n>>k;
for (i=1;i<=n;i++) {
fin>>v[i];
}
p=1; u=1; d[u]=1;
for (i=2;i<=n;i++) {
while (v[i]<v[d[u]] && p<=u)
u--;
u++;
d[u]=i;
if (i-d[p]==k)
p++;
if (i>=k) {
sol+=v[d[p]];
}
}
fout<<sol;
return 0;
}