description: You are given two integers l and r, l≤ r. Find the largest possible value of a mod b over all pairs (a, b) of integers for which r≥ a ≥ b ≥ l.
  
  As a reminder, a mod b is a remainder we get when dividing a by b. For example, 26 mod 8 = 2.
  
  Input
  
  Each test contains multiple test cases.
  
  The first line contains one positive integer t (1≤ t≤ 10^4), denoting the number of test cases. Description of the test cases follows.
  
  The only line of each test case contains two integers l, r (1≤ l ≤ r ≤ 10^9).
  
  Output
  
  For every test case, output the largest possible value of a mod b over all pairs (a, b) of integers for which r≥ a ≥ b ≥ l.
  
  Example
  
  Input
  
  
  4
  1 1
  999999999 1000000000
  8 26
  1 999999999
  
  
  Output
  
  
  0
  1
  12
  499999999
  
  Note
  
  In the first test case, the only allowed pair is (a, b) = (1, 1), for which a mod b = 1 mod 1 = 0.
  
  In the second test case, the optimal choice is pair (a, b) = (1000000000, 999999999), for which a mod b = 1.
solution: #include <bits/stdc++.h>
  using namespace std;
  using ui = unsigned int;
  const double pi = acos(-1.0);
  const int dx[] = {0, 1, 0, -1};
  const int dy[] = {1, 0, -1, 0};
  const int limit = 5e5;
  int read() {
    int s = 0;
    char c = getchar(), lc = '+';
    while (c < '0' || '9' < c) lc = c, c = getchar();
    while ('0' <= c && c <= '9') s = s * 10 + c - '0', c = getchar();
    return lc == '-' ? -s : s;
  }
  void write(long long x) {
    if (x < 0) putchar('-'), x = -x;
    if (x < 10)
      putchar(x + '0');
    else
      write(x / 10), putchar(x % 10 + '0');
  }
  void print(long long x, char c = '\n') {
    write(x);
    putchar(c);
  }
  long long mod = 998244353;
  const int N = 5e5 + 5;
  long long n, m, _;
  int i, j, k;
  signed main() {
    int T;
    while (cin >> T)
      while (T--) {
        int l, r;
        scanf("%d%d", &l, &r);
        if (r / 2 >= l) {
          int ans = r / 2;
          if (r % 2 == 0) ans--;
          printf("%d\n", (ans));
        } else {
          printf("%d\n", (r % l));
        }
      }
    return 0;
  }
  