Pagini recente » Cod sursa (job #1680341) | Cod sursa (job #1206508) | Cod sursa (job #270754) | Cod sursa (job #57372) | Cod sursa (job #2044323)
#include <iostream>
#define N 5000001
#include<fstream>
#include<deque>
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
int n,k,a[N];
long long s;
deque<int>d;
void citire()
{int i;
fin>>n>>k;
for(i=1;i<=n;++i)fin>>a[i];
}
void add(int x)
{while(!d.empty()&&a[x]<a[d.back()])d.pop_back();
d.push_back(x);
}
void calcul()
{int i;
///prima secv de k elem
for(i=1;i<=k;++i)add(i);
s+=a[d.front()];
for(i=k+1;i<=n;++i)
{while(!d.empty()&&i-d.front()>=k)
d.pop_front();
add(i);
s+=a[d.front()];
}
}
int main()
{ citire();
fin.close();
calcul();
fout<<s<<"\n";
fout.close();
return 0;
}