1 条题解

  • 0
    @ 2025-10-10 20:13:36

    C++ :

    #include <bits/stdc++.h>
    using namespace std;
    
    int n,a,b;
    int num[500010];
    int l = 1,r,mid;
    
    //x秒能否烘干衣服 
    bool check(int x){
    	int sum = 0;
    	for(int i = 1;i <= n;i++){
    		//能晒干 
    		if(a * x >= num[i]) continue;
    		if((num[i] - a * x) % b == 0){
    			sum += (num[i] - a * x) / b;
    		} else{
    			sum += (num[i] - a * x) / b + 1;
    		}
    		
    		if(sum > x) return false;
    	} 
    	return true;
    }
    
    int main(){
    	scanf("%d%d%d",&n,&a,&b);
    	for(int i = 1;i <= n;i++){
    		scanf("%d",&num[i]);
    		r = max(r,num[i]);
    	}
    	
    	while(l <= r){
    		mid = l + r >> 1;
    		if(check(mid)) r = mid - 1;
    		else l = mid + 1;
    	}
    	
    	cout<<l;
    	return 0;
    }
    
    
    • 1

    信息

    ID
    1106
    时间
    1000ms
    内存
    512MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者