题目
#include <iostream>
using namespace std;
typedef long long ll;
inline int read()
{
int x = 0, f = 1;
char ch = getchar();
while (ch < '0' || ch > '9')
{
if (ch == '-') f = -1;
ch = getchar();
}
while (ch >= '0' && ch <= '9')
{
x = x * 10 + ch - '0';
ch = getchar();
}
return x * f;
}
ll f(ll n)
{
return n * (n + 1) / 2;
}
ll g(ll n)
{
return n * (n + 1) * (n + 2) / 6;
}
ll find(ll n)
{
int l = 0, r = 1e9, ans = 0;
while (l <= r)
{
int mid = (l + r) / 2;
if (f(mid) >= n)
{
r = mid - 1;
ans = mid;
}
else l = mid + 1;
}
return ans;
}
int main()
{
int t = read();
while (t --)
{
ll l = read(), r = read();
ll getl = l - f(find(l) - 1);
ll getr = r - f(find(r) - 1);
ll ansl = g(find(l) - 1) + f(getl - 1);
ll ansr = g(find(r) - 1) + f(getr);
cout << ansr - ansl << endl;
}
return 0;
}