题解在此
2025-10-08 10:29:13
发布于:浙江
8阅读
0回复
0点赞
#include <iostream>
using namespace std;
long long a[200010];
int main() {
int n,k;
cin>>n>>k;
for (int i=1;i<=n;i++) {
cin>>a[i];
}
if (n==1) {
cout<<0;
return 0;
}
long long ans=0;
long long cnt=0;
for (int i=1;i<=n;i++) {
cnt+=a[i];
}
int zj=1;
long long sum=0;
for (int i=1;i<=n;i++) {
sum+=a[i];
if (sum*2>=cnt) {
zj=i;
break;
}
}
for (int i=1;i<zj;i++) {
if (a[i]%k==0) {
ans+=a[i]/k;
}else{
ans+=a[i]/k+1;
}
a[i+1]+=a[i];
a[i]=0;
}
for (int i=n;i>zj;i--) {
if (a[i]%k==0) {
ans+=a[i]/k;
}else{
ans+=a[i]/k+1;
}
a[i-1]+=a[i];
a[i]=0;
}
cout<<ans;
return 0;
}
这里空空如也
有帮助,赞一个