#include <bits/stdc++.h>
using namespace std;
#define output(v) for(auto&it:v){cout<<it<<" ";}cout<<"\n"
#define input(v) for(auto&it:v){cin>>it;}
void FastCode()
{
std::ios_base::sync_with_stdio(0);
cin.tie(NULL);
cout.tie(NULL);
}
const int N=1e6+5;
bool prime[N];
vector<long long>primes;
void sieve()
{
for (int i = 0; i < N; i++)
prime[i] = 1;
prime[0] = prime[1] = 0;
for (int i = 4; i < N; i += 2)
{
prime[i] = 0;
}
for (int i = 3; i * i < N; i += 2)
{
if (prime[i])
{
for (int j = i * i; j < N; j += i + i)
{
prime[j] = 0;
}
}
}
for(int i=2; i<N; i++)
if(prime[i])primes.push_back(i);
}
vector<int> v [2*100005];
vector<int> cost [2*100005];
int main()
{
FastCode();
int t;
cin >> t;
while(t--){
long long n , k;
cin >> n >> k;
if(k <= n+1){
cout<<(k-1)/2<<"\n";
}else{
long long s = k - n;
if(s < n){
cout<<(k-2*s+1)/2<<"\n";
}else cout<<"0\n";
}
}
return 0;
}
Copy