rt,我二分做了 40pts,求正解。
#include<bits/stdc++.h>
using namespace std;
int n,l,r,x[1000005];
int check(int p){
int sum=0;
for(register int i=1;i<=n;i++){
sum+=p/x[i];
}
return sum;
}
int main(){
cin>>n>>l>>r;
for(register int i=1;i<=n;i++)cin>>x[i];
if(n==1){
int ans=0;
for(register int i=l;i<=r;i++){
ans++;
}
cout<<ans;
}else{
int res=0;
for(register int i=l;i<=r;i++){
int le=1,ri=1000000000,ans=-1;
while(le<=ri){
int mid=(le+ri)>>1;
if(check(mid)<i)le=mid+1;
else if(check(mid)>i)ri=mid-1;
else{
ans=mid;
break;
}
}
if(ans!=-1)res++;
}
cout<<res;
}
}