top1编程
← 返回题目
题解

【基础】切割绳子

1 条题解

  • 0
    @ 2026-7-28 23:03:08
    #include<bits/stdc++.h>
    using namespace std;
    
    int n,a[110],m,c,l=1,b,z;
    
    int main(){
    	cin>>n;
    	
    	for(int i=1;i<=n;i++){
    		cin>>a[i];
    		
    		c+=a[i];
    	}
    	
    	cin>>m;
    	
    	if(c<m){
    		cout<<"Failed";
    	}else{
    		b=c;
    		
    		while(l<b){
    			z=(l+b+1)/2;
    			c=0;
    			
    			for(int i=1;i<=n;i++){
    				c+=a[i]/z;
    			}
    			
    			if(c<m){
    				b=z-1;
    			}else{
    				l=z;
    			}
    		}
    		
    		cout<<l;
    	}
    	
    	return 0;
    }
    
    • 1