#include <bits/stdc++.h>
#define fast ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(0);
#define ll long long
using namespace std;
long long pre_sum(long long start,long long endd)
{
return((endd-start+1)*(endd+start)/2);
}
int main()
{
fast
int t;
cin>>t;
while(t--)
{
ll n,k;
cin>>n>>k;
n=(n-1+k);
ll total = ((n-k+1)*(k+n))/2;
ll key =total/2;
ll left=k,right=n;
while (left < right)
{
int mid = left + (right - left) / 2;
if ( pre_sum(k,mid)> key)
right = mid;
else
left = mid + 1;
}
ll sum1=(pre_sum(k,right)); // try the sum that larger than total/2
ll sum2=(pre_sum(k,right-1));// try the sum that smaller than total/2
cout<<min(abs((total-sum1)-sum1),abs((total-sum2)-sum2))<<"\n"; //minimum between both sums
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgZmFzdCBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTtjaW4udGllKE5VTEwpO2NvdXQudGllKDApOwojZGVmaW5lIGxsIGxvbmcgbG9uZwp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKbG9uZyBsb25nIHByZV9zdW0obG9uZyBsb25nIHN0YXJ0LGxvbmcgbG9uZyBlbmRkKQp7CiAgICByZXR1cm4oKGVuZGQtc3RhcnQrMSkqKGVuZGQrc3RhcnQpLzIpOwp9CgppbnQgbWFpbigpCnsKICAgIGZhc3QKICAgIGludCB0OwogICAgY2luPj50OwogICAgd2hpbGUodC0tKQogICAgewogICAgICAgIGxsIG4sazsKICAgICAgICBjaW4+Pm4+Pms7CiAgICAgICAgbj0obi0xK2spOwogICAgICAgIGxsIHRvdGFsID0gKChuLWsrMSkqKGsrbikpLzI7CiAgICAgICAgbGwga2V5ID10b3RhbC8yOwoKICAgICAgICBsbCBsZWZ0PWsscmlnaHQ9bjsKICAgICAgICB3aGlsZSAobGVmdCA8IHJpZ2h0KQogICAgICAgIHsKICAgICAgICAgICAgaW50IG1pZCA9IGxlZnQgKyAocmlnaHQgLSBsZWZ0KSAvIDI7CgogICAgICAgICAgICBpZiAoIHByZV9zdW0oayxtaWQpPiBrZXkpCiAgICAgICAgICAgICAgICByaWdodCA9IG1pZDsKICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgbGVmdCA9IG1pZCArIDE7CiAgICAgICAgfQogICAgICAgIGxsIHN1bTE9KHByZV9zdW0oayxyaWdodCkpOyAvLyB0cnkgdGhlIHN1bSB0aGF0IGxhcmdlciB0aGFuIHRvdGFsLzIKICAgICAgICBsbCBzdW0yPShwcmVfc3VtKGsscmlnaHQtMSkpOy8vIHRyeSB0aGUgc3VtIHRoYXQgc21hbGxlciB0aGFuIHRvdGFsLzIKICAgICAgICBjb3V0PDxtaW4oYWJzKCh0b3RhbC1zdW0xKS1zdW0xKSxhYnMoKHRvdGFsLXN1bTIpLXN1bTIpKTw8IlxuIjsgLy9taW5pbXVtIGJldHdlZW4gYm90aCBzdW1zCiAgICB9Cn0K