sort排序
#include <bits/stdc++.h> using namespace std; int mod=1e9+7; long long ans; struct node { long long val,cnt; }a[1005]; bool cmp(node b,node c) { return b.val>c.val; } int main() { int n; scanf("%d",&n); ans=0; for(int i=0;i<n;i++) scanf("%lld",&a[i].val); for(int i=0;i<n;i++) scanf("%lld",&a[i].cnt); sort(a,a+n,cmp); long long sum=0; for(int i=0;i<n;i++) { for(int j=1;j<=a[i].cnt;j++) { if(ans<ans+sum+a[i].val) { ans=ans+sum+a[i].val; sum+=a[i].val; //cout<<ans<<endl; } else { cout<<ans<<endl; return 0; } } } cout<<ans<<endl; return 0; }