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: import java.util.*;
  import java.io.*;
  
  public class A {
      static ArrayList<Integer> list = new ArrayList<>();
      public static void main(String[] args) {
          Scanner in = new Scanner(System.in);
          PrintWriter pw = new PrintWriter(System.out);
          int t = in.nextInt();
          for (int tt = 0; tt < t; tt++) {
              long l = in.nextLong(), r = in.nextLong();
              if (l * 2 > r) {
                 // debug(l * 2);
                  pw.println((r - l));
                  continue;
              }
              if(2 * l == r) {
                  pw.println(r - l - 1);
                  continue;
              }
              pw.println(get(l, r));
  
          }
          pw.close();
      }
      static long get(long l, long r) {
          long ans = l;
          long left = l, right = r;
          while (left <= right) {
              long mid = (left + right) / 2;
              if (f(mid) < r) {
                  left = mid + 1;
                  ans = mid;
              } else right = mid - 1;
          }
          return ans;
      }
      static long f(long v) {
          return 2 * v;
      }
  
  
  
      static void debug(Object... obj) {
          System.err.println(Arrays.deepToString(obj));
      }
  }
  