Pagini recente » Cod sursa (job #1037669) | Cod sursa (job #644495) | Cod sursa (job #2637175) | Cod sursa (job #2331438) | Cod sursa (job #382159)
Cod sursa(job #382159)
#include <stdio.h>
#define MAXN 1000006
int N,M;
long long C1[MAXN],C2[6*MAXN];
int main(){
freopen("scandura.in","rt",stdin);
freopen("scandura.out","wt",stdout);
scanf("%d %d\n",&N,&M);
for (int i=1;i<=N;++i) scanf("%lld",&C1[i]);
fclose(stdin);
int s1=1,e1=N,s2=1,e2=0;
long long rez=0;
while ((e1-s1+1+e2-s2+1)>1){
long long sum=0;
for (int i=1;i<=M;++i){
long long y=-1;
int cv=0;
if (s1<=e1) { y=C1[s1]; cv=1; }
if (s2<=e2 && (y==-1 || y>C2[s2])) { y=C2[s2]; cv=2; }
if (y!=-1){
if (cv==1) ++s1; else ++s2;
sum+=y;
}
}
C2[++e2]=sum;
rez+=sum;
}
printf("%lld\n",rez);
fclose(stdout);
return 0;
}