#include #include #include #include using namespace std; int N; long L,R; int ans=1; vectorf(vector&A) { sort(A.begin(),A.end()); vectorl(A.size()); for(int i=0;i=0;j--) { long v=A[i]*A[j]; if(L<=v&&v<=R) { ans=max(ans,2); if(l[i]==j+1) { long vv=A[j]*A[j+1]; if(L<=vv&&vv<=R) { l[i]=j; ans=max(ans,i-j+1); } } } } } return l; } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); cin>>N>>L>>R; vectorpos,neg; int zero=0; for(int i=0;i>A; if(A==0)zero++; else if(A>0)pos.push_back(A); else neg.push_back(-A); } vectorpl=f(pos),nl=f(neg); for(long p:pos)for(long n:neg) { long v=p*-n; if(L<=v&&v<=R)ans=max(ans,2); } if(R>=1&&L<=-1) { for(int i=0;i0&&pos[i-1]*pos[i]>R)continue; for(int j=0;j0&&neg[j-1]*neg[j]>R)continue; if(pos[i]*neg[j]<=-L)ans=max(ans,i+1+j+1); } } } if(L<=0&&0<=R)ans+=zero; cout<