#include #include #include #include #include using namespace std; int a[100005]; int b[100005]; int val[100005][20]; int get_bit[1 <= 0; i--) { int j; val[i][0] = b[i]; for (j = 1; j = r) { newl = r; } int ans1 = b[newl - 1] - b[l] + 1; int k; if (r > newl) { k = get_bit[r - newl]; } else { printf("%d\n", ans1); continue; } printf("%d\n", max(ans1, max(val[newl][k], val[r - (1 <
A. #include #include #include #include #include using namespace std; int a[100005]; int b[100005]; int val[100005][20]; int get_bit[1 <= 0; i--) { int j; val[i][0] = b[i]; for (j = 1; j = r) { newl = r; } int ans1 = b[newl - 1] - b[l] + 1; int k; if (r > newl) { k = get_bit[r - newl]; } else { printf("%d\n", ans1); continue; } printf("%d\n", max(ans1, max(val[newl][k], val[r - (1 < #include #include #include #include using namespace std; int a[100005]; int b[100005]; int val[100005][20]; int get_bit[1 <= 0; i--) { int j; val[i][0] = b[i]; for (j = 1; j = r) { newl = r; } int ans1 = b[newl - 1] - b[l] + 1; int k; if (r > newl) { k = get_bit[r - newl]; } else { printf("%d\n", ans1); continue; } printf("%d\n", max(ans1, max(val[newl][k], val[r - (1 < #include #include #include #include using namespace std; int a[100005]; int b[100005]; int val[100005][20]; int get_bit[1 <= 0; i--) { int j; val[i][0] = b[i]; for (j = 1; j = r) { newl = r; } int ans1 = b[newl - 1] - b[l] + 1; int k; if (r > newl) { k = get_bit[r - newl]; } else { printf("%d\n", ans1); continue; } printf("%d\n", max(ans1, max(val[newl][k], val[r - (1 < #include #include #include #include using namespace std; int a[100005]; int b[100005]; int val[100005][20]; int get_bit[1 <= 0; i--) { int j; val[i][0] = b[i]; for (j = 1; j = r) { newl = r; } int ans1 = b[newl - 1] - b[l] + 1; int k; if (r > newl) { k = get_bit[r - newl]; } else { printf("%d\n", ans1); continue; } printf("%d\n", max(ans1, max(val[newl][k], val[r - (1 <