#include using namespace std; struct R{ //>=0&&de!=0 long long nu,de; bool operator<(const R& other) const { return (__int128)nu*other.de<(__int128)de*other.nu; } bool operator==(const R& other) const { return (__int128)nu*other.de==(__int128)de*other.nu; } }; int main(void){ int n; cin>>n; vector>v; vectorp2; for(int i=0;i<31;i++){ p2.push_back(1<>l>>r; auto iter=upper_bound(p2.begin(), p2.end(),l); int pos = iter-p2.begin()-1; v.push_back({{l,p2[pos]},1}); if(p2[pos]*2<=r)sum++; iter=upper_bound(p2.begin(), p2.end(),r); pos = iter-p2.begin()-1; v.push_back({{r,p2[pos]},-1}); } sort(v.begin(),v.end()); for(int i=0;i