30分,求大佬帮助!
查看原帖
30分,求大佬帮助!
892571
ltzx2022_kanxinyi_5楼主2023/6/9 21:49
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n,m,ans;
ll l,r,mid;
ll x[100005],day[100005],ha;
bool check(ll a){
	ll tmp=0,cnt=0;
	for(ll i=1;i<=n;i++){
		tmp/=2;
		while(tmp<a)
		{
			cnt++;
			tmp+=x[cnt];
			if(cnt>n)
			{
				return 0;
			}
			else if(a&&a==ha)
			{
				day[cnt]=i;
			}
		}
	}
	return 1;
}
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++) 
	{
		cin>>x[i];
		r+=x[i];
	}
	while(l<=r)
	{
		mid=l+r>>1;
		if(check(mid))
			ha=mid,l=mid+1;
		else
			r=mid-1;
	}
	cout<<ha<<endl;
	check(ha);
	for(ll i=1;i<=n;i++)
		if(day[i]>0)
			cout<<day[i]<<endl;
		else
			cout<<m<<endl;	
	return 0;
}
2023/6/9 21:49
加载中...