#include <bits/stdc++.h>
using namespace std;
uint64_t square(uint64_t x)
{
return x * x;
}
int main()
{
int T;
cin >> T; //no of test cases
while(T--){
uint64_t x, y;
cin >> x >> y;
if(x%2==0 && y%2!=0 && y< x){
cout << fixed <<((x*x)-y)+1 << "\n";
}else if(x%2==0 && y%2!=0 && y>x){
cout << fixed << ((y*y)-x)+1 << "\n";
}else if(x%2==0 && y%2==0 && y<x){
cout << fixed << ((y*y)-x)+1 << "\n";
}else if(x%2==0 && y%2==0 && y>x){
cout << fixed << ((square((y*y)-1))+x)-1 << "\n";
}else if(x%2!=0 && y%2==0 && y<x){
cout << fixed << ((y*y)+x)-1 << "\n";
}else if(x%2!=0 && y%2==0 && y>x){
cout << fixed << (square((y-1)))+x << "\n";
}else if(x%2!=0 && y%2!=0 && y<x){
cout << fixed << (square((x-1)))+y << "\n";
}else if(x%2!=0 && y%2!=0 && y>x){
cout << fixed << ((y*y)-x)+1 << "\n";
}
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp1aW50NjRfdCBzcXVhcmUodWludDY0X3QgeCkKewoJcmV0dXJuIHggKiB4Owp9CgppbnQgbWFpbigpCnsKICAgIGludCBUOwogICAgY2luID4+IFQ7IC8vbm8gb2YgdGVzdCBjYXNlcwogICAgd2hpbGUoVC0tKXsKICAgICAgICB1aW50NjRfdCB4LCB5OwogICAgICAgIGNpbiA+PiB4ID4+IHk7CiAgICAgICAgaWYoeCUyPT0wICYmIHklMiE9MCAmJiB5PCB4KXsKICAgICAgICAgICAgY291dCA8PCBmaXhlZCA8PCgoeCp4KS15KSsxIDw8ICJcbiI7CiAgICAgICAgfWVsc2UgaWYoeCUyPT0wICYmIHklMiE9MCAmJiB5PngpewogICAgICAgICAgICBjb3V0IDw8IGZpeGVkIDw8ICgoeSp5KS14KSsxIDw8ICJcbiI7CiAgICAgICAgfWVsc2UgaWYoeCUyPT0wICYmIHklMj09MCAmJiB5PHgpewogICAgICAgICAgICBjb3V0IDw8IGZpeGVkIDw8ICgoeSp5KS14KSsxIDw8ICJcbiI7CiAgICAgICAgfWVsc2UgaWYoeCUyPT0wICYmIHklMj09MCAmJiB5PngpewogICAgICAgICAgICBjb3V0IDw8IGZpeGVkIDw8ICgoc3F1YXJlKCh5KnkpLTEpKSt4KS0xIDw8ICJcbiI7CiAgICAgICAgfWVsc2UgaWYoeCUyIT0wICYmIHklMj09MCAmJiB5PHgpewogICAgICAgICAgICBjb3V0IDw8IGZpeGVkIDw8ICgoeSp5KSt4KS0xIDw8ICJcbiI7CiAgICAgICAgfWVsc2UgaWYoeCUyIT0wICYmIHklMj09MCAmJiB5PngpewogICAgICAgICAgICBjb3V0IDw8IGZpeGVkIDw8IChzcXVhcmUoKHktMSkpKSt4IDw8ICJcbiI7CiAgICAgICAgfWVsc2UgaWYoeCUyIT0wICYmIHklMiE9MCAmJiB5PHgpewogICAgICAgICAgICBjb3V0IDw8IGZpeGVkIDw8IChzcXVhcmUoKHgtMSkpKSt5IDw8ICJcbiI7CiAgICAgICAgfWVsc2UgaWYoeCUyIT0wICYmIHklMiE9MCAmJiB5PngpewogICAgICAgICAgICBjb3V0IDw8IGZpeGVkIDw8ICgoeSp5KS14KSsxIDw8ICJcbiI7CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIDA7Cn0=