Pagini recente » Cod sursa (job #1185786) | Cod sursa (job #2489397) | Cod sursa (job #3257366) | Cod sursa (job #1071502) | Cod sursa (job #2544879)
#include <fstream>
#define INF 2000000000
using namespace std;
ifstream fi("deque.in");
ofstream fo("deque.out");
long long rez;
int N,K;
int A[5000002];
int ST[5000002];
int DR[5000002];
int main()
{
fi>>N>>K;
for (int i=1;i<=N;i++)
fi>>A[i];
/// se construieste ST
ST[0]=INF;
for (int i=1;i<=N;i++)
if (i%K==1)
ST[i]=A[i];
else
ST[i]=min(A[i],ST[i-1]);
/// se construieste DR
DR[N+1]=INF;
DR[N]=INF;
for (int i=N-1;i>=1;i--)
if (i%K==0)
DR[i]=A[i];
else
DR[i]=min(A[i],DR[i+1]);
int a,b;
a=1;
b=K;
rez=0;
while (b<=N)
{
rez=rez+min(DR[a],ST[b]);
a++;
b++;
}
fo<<rez;
fi.close();
fo.close();
return 0;
}