fork download
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4. using ll = long long;
  5. using ld = long double;
  6.  
  7. #define pb push_back
  8. #define sz(s) (int)s.size()
  9. #define pii pair<int, int>
  10. #define pll pair<ll, ll>
  11. #define all(a) a.begin(),a.end()
  12. #define rep(i, a, b) for(int i = a; i < b; i++)
  13. #define vt vector
  14. #define up upper_bound
  15. #define lb lower_bound
  16. #define endl "\n"
  17.  
  18. const long double pi = 2 * acos(0.0);
  19. const int mod = 1e9 + 7;
  20.  
  21. void solve(){
  22. ll a, b, q;
  23. cin >> a >> b >> q;
  24. if(a > b) {
  25. swap(a, b);
  26. }
  27. ll s = (a * b) / __gcd(a, b);
  28. while(q--) {
  29. ll l, r;
  30. cin >> l >> r;
  31. // for(ll i = l; i <= r; ++i) {
  32. // ll x = (i % a) % b;
  33. // ll y = (i % b) % a;
  34. // cout << i << " -> " << x << " " << y << (x==y ? " h" : "") << endl;
  35. // }
  36.  
  37. ll num_r = (r / s) * b + min(r % s + 1, b);
  38. ll num_l = ((l - 1) / s) * b + min((l - 1) % s + 1, b);
  39. ll ans = num_r - num_l;
  40. cout << r - l + 1 - ans << " ";
  41. }
  42. cout << endl;
  43. }
  44.  
  45. int main() {
  46. ios::sync_with_stdio(false);
  47. cin.tie(0);
  48.  
  49. #ifndef ONLINE_JUDGE
  50. freopen("input.txt", "r", stdin);
  51. freopen("output.txt", "w", stdout);
  52. #endif
  53.  
  54. int tc = 1;
  55. cin >> tc;
  56. while(tc--){
  57. solve();
  58. }
  59. return 0;
  60. }
Success #stdin #stdout 0.01s 5536KB
stdin
1
1000000 999999 1
0 10000000
stdout
9000001