1 条题解
-
1
#include <bits/stdc++.h> #define ll long long using namespace std; const int N=200005; int n,m,k,s,a[N],q; ll sum[N],v,t,L; int check(int x){//使用x个魔法能不能让到达时间大于t return L+sum[n]-sum[n-x]>t*v;//总路程>t*v } int main() { cin>>n>>L>>v; for (int i=1;i<=n;++i) cin>>a[i]; sort(a+1,a+1+n); for (int i=1;i<=n;++i) sum[i]=sum[i-1]+a[i]; cin>>q; while (q--){ cin>>t; int l=0,r=n,mid; while (l<=r){ mid=(l+r)/2; if (check(mid)) r=mid-1; else l=mid+1; } cout<<(l>n?-1:l)<<"\n"; } }
- 1
信息
- ID
- 654
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 6
- 标签
- 递交数
- 224
- 已通过
- 70
- 上传者