RE求助
查看原帖
RE求助
943493
LookatSea楼主2024/1/11 21:17

RT火急

#include<bits/stdc++.h>
using namespace std;
 
int n,a,b,q[500001];
bool check(int x){	//检测x时间内能否晒干全部衣服 
	int d,t,sum=0;
	for(int i=0;i<n;i++){
		
		d=q[i]-a*x;
		if(d<=0) continue;	//能自然晒干的就跳过
		if(d%b==0){//不能的 计算要用机器晒多久 
			t=d/b;
		}else{
			t=d/b+1;
		}	
		sum+=t;
		
		if(sum>x) {
			return false; //加速 
		}
		if(sum<=x){
			return 1;
		}
		return 0;
	}
}
int main(){
	cin>>n>>a>>b;
	for(int i=0;i<n;i++){
		cin>>q[i];
	}	
	int l=0,r=500001;
	while(l+1<r){//二分 
		int mid=(l+r)/2;//更新中间值 
		if(check(mid))
			r=mid;//更新右区间 
		else
			l=mid;//更新左区间 
	}
	cout<<r;	
	return 0;
}
2024/1/11 21:17
加载中...