Pagini recente » Cod sursa (job #2800183) | Cod sursa (job #2330218) | Cod sursa (job #42613) | Cod sursa (job #1073587) | Cod sursa (job #567645)
Cod sursa(job #567645)
# include <fstream>
using namespace std;
std :: ifstream f ("deque.in");
std :: ofstream g ("deque.out");
template <class T>
inline T bsearch (T st, T dr, T find){
T m, ret = st;
for (; st <= dr; ){
m = (st + dr) >> 1;
if (v[deq[m]] <= find){
st = m + 1;
ret = m;
}
else dr = m - 1;
}
return ret;
}
int n, k, cit, v[5000010], deq[5000010];
int i, st = 1, dr;
int s = 0;
int main (){
f >> n >> k;
for (i = 1; i <= n; ++i){
f >> v[i];
//for (; st <= dr && v[deq[dr]] >= v[i]; --dr);// bsearch (st, dr, cit);
dr = bsearch (st, dr, v[i]);
deq[++dr] = i;
if (deq[st] == i - k) ++st;
if (i >= k) s = s + v[deq[st]];
}
g << s << '\n';
g.close ();
return 0;
}