代码如下:
#include <iostream>
#include <cmath>
using namespace std;
const int grps = 2e6+9;
typedef unsigned long long ull;
ull evys[grps],
ttls[grps];
ull n, l, r;
ull s_l, s_r;
int main()
{
ios::sync_with_stdio(false);
cin.tie(0), cout.tie(0);
for (int i=1; i<=grps; ++i) {
evys[i] = i + i*(i-1)/2;
ttls[i] = evys[i] + ttls[i-1];
}
cin >> n;
ull index;
while (n--) {
cin >> l >> r;
index = (sqrt(1+8*l)-1)/2;
s_l = ttls[index];
if (l != evys[index])
s_l += evys[l-evys[index]-1];
else
s_l -= index;
index = (sqrt(1+8*r)-1)/2;
s_r = ttls[index];
if (r != evys[index])
s_r += evys[r-evys[index]];
cout << s_r - s_l << "\n";
}
return 0;
}