Pagini recente » Cod sursa (job #2430925) | Cod sursa (job #101018) | Cod sursa (job #1491232) | Cod sursa (job #511331) | Cod sursa (job #2543472)
#include <iostream>
#include<fstream>
using namespace std;
int v[5000005];
int st[5000005];
int dr[5000005];
int main()
{
ifstream f("deque.in");
ofstream g("deque.out");
int n,k;
f>>n>>k;
for(int i=1;i<=n;++i){
f>>v[i];
}
st[0]=2000000000;
for(int i=1;i<=n;++i){
if(i%k==1){
st[i]=v[i];
}
else{
st[i]=min(st[i-1],v[i]);
}
}
dr[n+1]=2000000000;
for(int i=n;i>=1;--i){
if(i%k==0 or i==n){
dr[i]=v[i];
}
else{
dr[i]=min(dr[i+1],v[i]);
}
}
int minim=0;
long long suma=0;
for(int i=1;i<=n-k+1;++i){
minim=min(dr[i],st[i+k-1]);
suma+=minim;
}
g<<suma;
f.close();
g.close();
return 0;
}