fork download
  1. #include <bits/stdc++.h>
  2. #define ll long long int
  3. #define ld long double
  4. #define nl "\n"
  5. #define ull unsigned long long
  6. #define rv return void
  7. #define str string
  8. #define all(x) x.begin(), x.end()
  9. #define allr(x) x.rbegin(), x.rend()
  10. #define vec vector
  11. #define fixed(n) fixed << setprecision(n)
  12. #define Moageza ios::sync_with_stdio(false);cout.tie(NULL);cin.tie(NULL);
  13. using namespace std;
  14. const ll mod = 1e9+7,n=105;
  15. //////////////////////////////////////////////////////
  16. ll sum(ll i){
  17. return (i*(i+1))/2;
  18. }
  19. void solve(){
  20. int a,b;cin >> a >> b;
  21. vec<ll> v;
  22. for(int i=1;i<=int(1e5);i++){
  23. v.push_back(sum(i));
  24. }
  25. ll c=0,d=0;
  26. for(int i=0;i<v.size();i++){
  27. int l=0,r=v.size()-1,k=-1,kk=-1;
  28. while(l <= r){
  29. int mid = (l + r) / 2;
  30. if(v[i]+v[mid]>b)r= mid - 1;
  31. else if(v[i]+v[mid]<a)l= mid + 1;
  32. else {
  33. k= mid;
  34. l= mid + 1;
  35. }
  36. }l=0,r=v.size()-1;
  37. while(l <= r){
  38. int mid = (l + r) / 2;
  39. if(v[i]+v[mid]>b)r= mid - 1;
  40. else if(v[i]+v[mid]<a)l= mid + 1;
  41. else {
  42. kk= mid;
  43. r= mid - 1;
  44. }
  45. }
  46. if(k!=-1){
  47. c+=(k-kk+1);
  48. if(i>=kk&&i<=k)c--,d++;
  49. }
  50. // cout<<k<<" "<<kk<<nl;
  51. }
  52. cout<<c/2+d;
  53. }
  54. int main()
  55. {
  56. Moageza
  57. #ifndef ONLINE_JUDGE
  58. freopen("input.txt", "r", stdin);freopen("output.txt", "w", stdout);
  59. #endif
  60. int t = 1;
  61. cin >> t;
  62. while (t--) {
  63. solve();
  64. cout << nl;
  65. }
  66. return 0;
  67. }
Success #stdin #stdout 0.01s 5320KB
stdin
Standard input is empty
stdout
4050