/* -*- coding: utf-8 -*- * * 3640.cc: No.3640 Babies don't like Bat Beat - yukicoder */ #include #include using namespace std; /* constant */ const int MAX_N = 200000; const int BN = 30; const int MAX_M = MAX_N * BN; /* typedef */ /* global variables */ int ls[MAX_N], rs[MAX_N]; int uxs[MAX_M], cs[MAX_M + 1]; /* subroutines */ /* main */ int main() { int n; scanf("%d", &n); for (int i = 0; i < n; i++) scanf("%d%d", ls + i, rs + i); int maxr = *max_element(rs, rs + n); int m = 0; for (int i = 0; i < n; i++) { int l = ls[i], r = rs[i]; while (l < maxr) { uxs[m++] = l, uxs[m++] = min(maxr, r); l <<= 1, r <<= 1; } } sort(uxs, uxs + m); m = unique(uxs, uxs + m) - uxs; //printf(" m=%d\n", m); for (int i = 0; i < n; i++) { int l = ls[i], r = rs[i]; while (l < maxr) { int li = lower_bound(uxs, uxs + m, l) - uxs; int ri = lower_bound(uxs, uxs + m, min(maxr, r)) - uxs; cs[li]++, cs[ri]--; l <<= 1, r <<= 1; } } for (int i = 0; i < m; i++) cs[i + 1] += cs[i]; int maxc = *max_element(cs, cs + m); printf("%d\n", maxc); return 0; }