4 条题解
-
1曾扬洋 (2022ts280) LV 9 @ 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; }
-
02023-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; }
-
-12023-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; }
-
-22022-10-15 16:43:17@
cout << "293"
- 1
信息
- ID
- 1280
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 7
- 标签
- 递交数
- 458
- 已通过
- 121
- 上传者