Cod sursa(job #1959886)
Utilizator | Data | 10 aprilie 2017 00:11:14 | |
---|---|---|---|
Problema | Deque | Scor | 60 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.47 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream in("deque.in");ofstream out("deque.out");
long long n,k,v[5000011],dq[5000011]; long long sm=0;
int main() {
in>>n>>k;
int primul=1; int ultimul=0;
for (int i=1;i <=n;++i) {
in >>v [i];
while (primul <=ultimul&&v[i]<=v[dq [ultimul]]) ultimul--;
dq [++ultimul]=i;
if (dq [primul]==i-k) primul++;
if (i>=k) sm+=v [dq[primul]];
}
out <<sm;
return 0;
}