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