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.  
  21. int f, n;
  22. cin >> f >> n;
  23.  
  24. vector<int> v(2);
  25. cin >> v[0] >> v[1];
  26.  
  27. int a = v[0];
  28. int b = v[1];
  29.  
  30. i128 x = make_num(a, n);
  31. i128 y = make_num(b, n);
  32.  
  33. i128 z = a;
  34. for(int i = 1; i < n; i++)
  35. z = z * 10 + b;
  36.  
  37. i128 p = b;
  38. for(int i = 1; i < n; i++)
  39. p = p * 10 + a;
  40.  
  41. i128 q = make_num(b, n - 1);
  42. i128 r = make_num(a, n + 1);
  43.  
  44. i128 F = f;
  45.  
  46. i128 ans = min({
  47. abs128(F - x),
  48. abs128(F - y),
  49. abs128(F - z),
  50. abs128(F - p),
  51. abs128(F - q),
  52. abs128(F - r)
  53. });
  54.  
  55. cout << (long long)ans << '\n';
  56.  
  57. return 0;
  58. }
Success #stdin #stdout 0s 5320KB
stdin
4
0 2
0 1
11 2
1 2
222 2
3 4
3333 2
6 7
stdout
2