测试数据1代码输出结果一样,为什么WA了
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,d,maxn;
int a[50010],ans[50010];
bool check(int x){
int i=1,num=0,day;
for(day=1;i<=n&&day!=d;day++){
while(num<x){
num+=a[i];
ans[i]=day;
i++;
}
num=num/2;
}
for(i;i<=n;i++){
ans[i]=day;
num+=a[i];
}
return day==d&&num>=x;
}
signed main(){
cin>>n>>d;
for(int i=1;i<=n;i++){
cin>>a[i];maxn=max(maxn,a[i]);
}
int l=1,r=maxn;
while(l<=r){
int mid=(l+r)>>1;
if(check(mid)) l=mid+1;
else r=mid-1;
}
check(r);
cout<<r<<'\n';
for(int i=1;i<=n;i++){
cout<<ans[i];
if(i!=n) cout<<'\n';
}
return 0;
}
