1 条题解
-
0
#include<bits/stdc++.h> using namespace std; int n; struct X{ int a,b;//商店时间、网购时间 }; X arr[100000+5]; //比较函数、返回两个参数的顺序是否合法(严格偏序) bool cmp(X x,X y){ if(x.b<y.b) return true; else return false; } //sum[i] 后缀和:arr[i]~arr[n] 的 a 之和 long long sum[100000+5]; int main() { cin>>n; for(int i=1;i<=n;i++) cin>>arr[i].a; for(int i=1;i<=n;i++) cin>>arr[i].b; sort(arr+1,arr+n+1,cmp); for(int i=n;i>=1;i--) sum[i] = sum[i+1]+arr[i].a; long long ans = sum[1];//全都在线下商店购买 for(int i=1;i<=n;i++) { //arr[1]~arr[i] 都网购的情况 long long now = max((long long)arr[i].b,sum[i+1]); ans = min(ans,now); } cout<<ans<<"\n"; return 0; }
- 1
信息
- ID
- 1132
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 5
- 标签
- 递交数
- 61
- 已通过
- 22
- 上传者