Cod sursa(job #2204667)
Utilizator | Data | 16 mai 2018 19:44:18 | |
---|---|---|---|
Problema | Deque | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.41 kb |
#include <fstream>
#include <math.h>
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
int n,k,i,p,u,v[5000010],d[5000010];
long long sol;
int main() {
fin>>n>>k;
for (i=1;i<=n;i++)
fin>>v[i];
p=1; u=1; d[1]=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;
}