fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. #define int long long
  5. using i128 = __int128_t;
  6.  
  7. i128 make_num(int digit, int len) {
  8. i128 num = 0;
  9. for (int i = 0; i < len; i++) {
  10. num = num * 10 + digit;
  11. }
  12. return num;
  13. }
  14.  
  15. i128 abs128(i128 x) {
  16. return (x < 0 ? -x : x);
  17. }
  18.  
  19. signed main() {
  20. ios::sync_with_stdio(false);
  21. cin.tie(nullptr);
  22.  
  23. int h;
  24. cin >> h;
  25.  
  26. while (h--) {
  27. int f, t;
  28. cin >> f >> t;
  29.  
  30. vector<int> v(2);
  31. cin >> v[0] >> v[1];
  32.  
  33. int a = v[0];
  34. int b = v[1];
  35.  
  36. int n = 0;
  37. int s = f;
  38.  
  39. if (s == 0) n = 1;
  40. while (s > 0) {
  41. s /= 10;
  42. n++;
  43. }
  44.  
  45. i128 x = make_num(a, n);
  46. i128 y = make_num(b, n);
  47.  
  48. i128 z = a;
  49. for (int i = 1; i < n; i++)
  50. z = z * 10 + b;
  51.  
  52. i128 p = b;
  53. for (int i = 1; i < n; i++)
  54. p = p * 10 + a;
  55.  
  56. i128 q = make_num(b, max(0LL, n - 1));
  57. i128 r = make_num(a, n + 1);
  58.  
  59. i128 F = f;
  60.  
  61. i128 ans = min({
  62. abs128(F - x),
  63. abs128(F - y),
  64. abs128(F - z),
  65. abs128(F - p),
  66. abs128(F - q),
  67. abs128(F - r)
  68. });
  69.  
  70. cout << (long long)ans << '\n';
  71. }
  72.  
  73. return 0;
  74. }
Success #stdin #stdout 0.01s 5308KB
stdin
4
0 2
0 1
11 2
1 2
222 2
3 4
3333 2
6 7
stdout
0
0
111
2556