Pagini recente » Cod sursa (job #508240) | Cod sursa (job #1872853) | Cod sursa (job #2499877) | Cod sursa (job #630384) | Cod sursa (job #2543449)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
int n;
int x[5000001];
int st[5000001];
int dr[5000001];
int k;
int main()
{
fin >> n >> k;
for(int i=1;i<=n;i++)
{
fin >> x[i];
}
for(int i=n+1;i%k==0;i++)
{
n++;
x[i]=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]);
}
}
for(int i=n;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();
}