这个题看了半天也不知道哪里错了,大佬们帮帮我
  • 板块题目总版
  • 楼主_M1Ku_
  • 当前回复1
  • 已保存回复1
  • 发布时间2021/2/3 19:00
  • 上次更新2023/11/5 03:49:59
查看原帖
这个题看了半天也不知道哪里错了,大佬们帮帮我
294754
_M1Ku_楼主2021/2/3 19:00

P1873 伐木

#include <iostream>

using namespace std;
long long a[10000],n,m,ans=0,maxx=0;
int half(int l,int r)
{
	int m;
	while (l<=r) 
	{
		ans=0;
		m=(l+r)/2;
		for(int i=1;i<=n;i++)
		{
			if(a[i]>m)
			{
				ans+=a[i]-m;
			}
		}
		
		
			if(ans<m)
			{
				r=m-1;
			}
			if(ans>=m)
			{
				l=m+1;
			}
		
	}
	return r;
}

int main() 
{
	cin>>n>>m;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
		maxx=max(maxx,a[i]);
	}
	cout<<half(0,maxx);
	return 0;
}

2021/2/3 19:00
加载中...