4 条题解

  • 1
    @ 2023-5-2 18:18:43
    #include<iostream>
    #include<algorithm>
    using namespace std;
    int n,m,a[1000005];
    bool check(int h)
    {
    	int sum = 0;
    	for(int i = 1;i <= n;i++)
    		if(a[i] > h)
    			sum += (a[i]-h);
    	return sum >= m;
    }
    int main()
    {
    	cin >> n >> m;
    	for(int i = 1;i <= n;i++) cin >> a[i];
    	int l = 0,r = 1000000000;
    	while(l < r)
    	{
    		int mid = (l + r + 1) >> 1;
    		if(check(mid)) l = mid;
    		else r = mid - 1;
    	}
    	cout << l;
    	return 0;
    }
    
    
    • 0
      @ 2023-5-1 11:46:05
      #include<algorithm>
      using namespace std;
      int a[1000005],n,m;  
      bool check(int h){
      	int sum=0;
      	for (int i=1; i<=n; i++){
      		if (a[i]>h){
      			sum += (a[i]-h);
      		}
      	
      	}
      	return sum>=m;
      }                                                
      int main(){
      	cin >>n >> m;
      	for (int i=1; i<=n; i++){
      		cin >> a[i];
      	}
      	int l=0,r=1000000000;
      	while(l<r){
      		int mid=(l+r+1)>>1;
      		if (check(mid)) {
      			l=mid;
      		}
      		else {
      			r=mid-1;
      		}
      	}
      	cout << l;
      	return 0;
      }
      
      
      • -1
        @ 2023-4-23 13:47:53
        #include <bits/stdc++.h>
        
        using namespace std;
        typedef long long ll;
        const int N = 1000010;
        ll a[N];
        ll n, m;
        
        ll check(ll x) {
        	ll sum = 0;
        	for (int i = 0; i < n; i++) {
        		if (a[i] > x) {
        			sum += (a[i] - x);
        			if (sum >= m) return true;
        		}
        	}
        	return false;
        }
        
        int main() {
        	// freopen("in.txt", "r", stdin);
        	cin >> n >> m;
        	for (int i = 0; i < n; i++) scanf("%lld", a + i);
        	ll l = 0, r = 0;
        	for (int i = 0; i < n; i++) r = max(r, a[i]);
        	 //for (int i = l; i <= r; i++) cout << i << " " << check(i) << endl;
        	while (l < r) {
        		ll mid = l + r + 1 >> 1;
        		if (check(mid)) l = mid;
        		else r = mid - 1;
        	}
        	printf("%lld", l);
        	return 0;
        }
        
        
        • -2
          @ 2022-10-15 16:43:17

          cout << "293"

          • 1

          信息

          ID
          1280
          时间
          1000ms
          内存
          256MiB
          难度
          6
          标签
          递交数
          401
          已通过
          109
          上传者