#include #define int long long int using namespace std; const int MAXN = 6e5 + 5, mod = 998244353; int T, inv[MAXN], jc[MAXN], n, m, id[MAXN], ans[MAXN], last = 1, l, r, inv_2; struct Node { int x, y, pos; }ls[MAXN]; int KSM(int a, int b) { int sum = 1; while (b) { if (b & 1) sum *= a, sum %= mod; a *= a, a %= mod; b >>= 1; } return sum; } void ycl() { jc[0] = inv[0] = 1; for (int i = 1; i <= MAXN - 5; i++) jc[i] = jc[i - 1] * i % mod, inv[i] = KSM(jc[i], mod - 2); } int C(int a, int b) { return jc[a] * inv[b] % mod * inv[a - b] % mod; } void MKFK() { int kc = cbrt(MAXN); for (int i = 0; i <= MAXN - 5; i++) id[i] = (i - 1) / kc + 1; } bool cmp(Node x, Node y) { if (id[x.x] != id[y.x]) return id[x.x] < id[y.x]; return x.y < y.y; } void add(int x, int op) { // if (op) cout << l << ' ' << r << ';'; if (op == 0) last = (last * 2 % mod - C(l, r) + mod) % mod; else last = (last + C(l, r + 1)) % mod; } void del(int x, int op) { if (op == 0) last = ((last + C(l, r)) % mod * inv_2) % mod; else last = (last - C(l, r) + mod) % mod; } signed main() { ios::sync_with_stdio(false); cin.tie(0); ycl(); inv_2 = KSM(2, mod - 2); cin >> T; for (int i = 1; i <= T; i++) { cin >> ls[i].x >> ls[i].y; ls[i].x --, ls[i].y --; ls[i].pos = i; } MKFK(); sort(ls + 1, ls + 1 + T, cmp); for (int i = 1; i <= T; i++) { while (l < ls[i].x) add(l, 0), l++; // cout << last << ' '; while (l > ls[i].x) del(l, 0), l--; // l = ls[i].x; while (r < ls[i].y) add(r, 1), r++; while (r > ls[i].y) del(r, 1), r--; ans[ls[i].pos] = (KSM(2, ls[i].x + 1) - 1) * last % mod; } for (int i = 1; i <= T; i++) { cout << ans[i] << '\n'; } return 0; } /* C(n, 0) + C(n, 1) + C(n, 2) + C(n, 3) + ... + C(n, m) C(n + 1, 0) + C(n + 1, 1) + C(n + 1, 2) + C(n + 1, 3) + ... + C(n + 1, m) = C(n, 0) + (C(n, 0) + C(n, 1)) + (C(n, 1) + C(n, 2)) + ... + (C(n, m - 1) + C(n, m)) = 2 * last - C(n, m) 1 10 9 C(4, 0) + C(4, 1) 30 91 78 78 13 9178 918 7891 787 34568 2311 91 78 78 13 9178 918 7891 787 34568 2311 91 78 78 13 9178 918 7891 787 34568 2311 91 78 78 13 9178 918 7891 787 34568 2311 91 78 78 13 9178 918 7891 787 34568 2311 91 78 78 13 9178 918 7891 787 34568 2311 */