修改精度也没用,依然是85分
代码如下
#include<bits/stdc++.h>
#define mod 1000000007
using namespace std;
int n;
long long ans=1;
struct cpp{
int a,b;
}e[500010];
inline bool cmp(cpp x,cpp y){
if(x.a!=y.a){
return x.a<y.a;
}
return x.b>y.b;
}
int main(){
ios::sync_with_stdio(0);
cin>>n;
for(int i=1;i<=n;i++){
cin>>e[i].a;
}
for(int i=1;i<=n;i++){
cin>>e[i].b;
}
sort(e+1,e+1+n,cmp);
for(int i=1;i<=n;i++){
if(e[i].a==1){
ans+=e[i].b;
}
else if(ans<e[i].b/(e[i].a-1)){
ans+=e[i].b;
}
else{
ans*=e[i].a;
}
ans%=mod;
}
cout<<ans<<endl;
return 0;
}