1 条题解
-
2
二分
#include<bits/stdc++.h> using namespace std; #define int long long const int N=2e5+10; int n,m,a[N]; bool check(int l) { int res=0; for(int i=1;i<=n;i++) res+=min(a[i],l); if(res<=m)return 1; return 0; } signed main() { scanf("%lld%lld",&n,&m);int s=0; for(int i=1;i<=n;i++)scanf("%lld",&a[i]),s+=a[i]; if(s<=m){puts("infinite");return 0;} int l=0,r=2e14; while(l+1<r) { int mid=(l+r)/2; if(check(mid))l=mid; else r=mid; } printf("%lld\n",l); return 0; }
- 1
信息
- ID
- 7999
- 时间
- 2000ms
- 内存
- 1024MiB
- 难度
- 6
- 标签
- 递交数
- 37
- 已通过
- 12
- 上传者