Pagini recente » Rating albu mihaela ruxandra (MLorelei) | Cod sursa (job #2214292)
#include <fstream>
using namespace std;
int v[5000001], s[5000001];
void deq (int st, int &fn, int i)
{
while (fn > st && v[s[fn-1]] >= v[i]){
fn --;
}
s[fn] = i;
fn ++;
}
void inc (int &st, int i, int k)
{
if (s[st] == i-k){
st ++;
}
}
int main ()
{
ifstream in ("deque.in");
ofstream out ("deque.out");
int n, k, i, st = 1, fn = 1;
long long sum = 0;
in >> n >> k;
for (i=1; i<=n; i++){
in >> v[i];
}
for (i=1; i<k; i++){
deq (st, fn, i);
}
for (i=k; i<=n; i++){
deq (st, fn, i);
inc (st, i, k);
sum += v[s[st]];
}
out << sum;
in.close ();
out.close ();
return 0;
}