Advertisement
FuFsQ

py_v0_t2

Jan 18th, 2021
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.74 KB | None | 0 0
  1. import copy
  2.  
  3. n = input()
  4. state = input()
  5.  
  6. if state == '0':
  7. tc = 1
  8. while True:
  9. ptrn = '1' * len(n)
  10.  
  11. if int(n) > int(ptrn)*tc:
  12. tc += 1
  13. else:
  14. print(int(ptrn)*tc)
  15. break
  16.  
  17. else:
  18. dgs = set([x for x in n])
  19. skipping_1 = False
  20.  
  21. if len(dgs) in (1, 2):
  22. print(n)
  23. skipping_1 = True
  24.  
  25. if not skipping_1:
  26.  
  27. n = [int(x) for x in n]
  28. result = copy.deepcopy(n)
  29.  
  30. diffs_cnt = 0
  31. mx_char = n[0]
  32. mx_char_idx = 0
  33. c_pos = 1
  34.  
  35. if n[0] != n[1]:
  36. diffs_cnt += 1
  37.  
  38. px_fill = -1
  39. change_pos = -1
  40. for I in range(0, len(n)):
  41. if n[I] > mx_char:
  42. px_fill = min(n[:I]) # n[I]
  43. change_pos = I
  44. break
  45.  
  46. if n[I] < mx_char:
  47. change_pos = I
  48. px_fill = mx_char
  49. break
  50.  
  51. # print(px_fill, change_pos)
  52. #
  53. diffs_before = len(set([x for x in n[:change_pos]]))
  54.  
  55. for O in range(len(n) - 1, diffs_before, -1):
  56. if n[O - 1] < n[O]:
  57. n[O - 1] += 1
  58.  
  59. # print(n)
  60.  
  61. cma_diffs = 0
  62. cmp_sym = n[0]
  63.  
  64. # print(n)
  65. r1 = ''
  66. r2 = ''
  67. for B in range(len(n)):
  68. if n[B] != cmp_sym:
  69. cma_diffs += 1
  70. cmp_sym = n[B]
  71.  
  72. if cma_diffs == 2 or (B + 1 == len(n)):
  73. # print(''.join(chr(ord('0') + x) for x in n[:B]) + chr(min(n[:B]) + ord('0')) * (len(n) - B))
  74. r1 = ''.join(chr(ord('0') + x) for x in n[:B]) + chr(n[B] + ord('0')) * (len(n) - B)
  75. break
  76.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement