Pagini recente » Cod sursa (job #2680998) | Cod sursa (job #53559) | Cod sursa (job #590229) | Cod sursa (job #2881135) | Cod sursa (job #2543452)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
int n;
int x[5000003];
int st[5000003];
int dr[5000003];
int k;
int main()
{
fin >> n >> k;
for(int i=1;i<=n;i++)
{
fin >> x[i];
}
st[0]=2000000000;
for(int i=1;i<=n;i++)
{
if(i%k==1)
{
st[i]=x[i];
}
else
{
st[i]=min(st[i-1],x[i]);
}
}
dr[n+1]=2000000000;
dr[n]=x[n];
for(int i=n-1;i>=1;i--)
{
if(i%k==0)
{
dr[i]=x[i];
}
else
{
dr[i]=min(dr[i+1],x[i]);
}
}
long long int rez=0;
for(int i=1;i<=n-k+1;i++)
{
rez+=1LL*min(st[i+k-1],dr[i]);
}
fout << rez;
fin.close();
fout.close();
}