Pagini recente » Cod sursa (job #1912515) | Cod sursa (job #1405479) | Cod sursa (job #2168311) | Cod sursa (job #2394323) | Cod sursa (job #2542722)
#include <fstream>
using namespace std;
ifstream fi("deque.in");
ofstream fo("deque.out");
int n,k;
int X[5000001],ST[5000001],DR[5000001];
long long rez;
int main()
{
fi>>n>>k;
for(int i=1;i<=n;i++)
fi>>X[i];
for(int i=1;i<=n;i++)
if(i%k==1)
ST[i]=X[i];
else
ST[i]=min(X[i],ST[i-1]);
DR[n]=X[n];
for(int i=n-1;i>=1;i--)
if(i%k==0)
DR[i]=X[i];
else
DR[i]=min(X[i],DR[i+1]);
int st,dr;
rez=0LL;
st=1;
dr=k;
while (dr<=n)
{
int v;
v=min(DR[st],ST[dr]);
rez+=v;
st++;
dr++;
}
fo<<rez;
fi.close();
fo.close();
return 0;
}