Submission #27440756


Source Code Expand

def evaluate(A, B):
  # A + B の桁和を求める
  A = list(map(int, A))
  B = list(map(int, B))
  ANS = 0
  carry = 0
  while A or B or carry:
    a = A.pop() if A else 0
    b = B.pop() if B else 0
    x, carry = a + b + carry, 0
    if x >= 10:
      x, carry = x - 10, 1
    ANS += x
  return ANS

def solve(a0, CNT_A, CNT_B):
  # A の 1 の位として a0 を使う場合
  X = []
  Y = []
  def add(a, b, n=None):
    nonlocal X, Y
    if n is None:
      n = min(CNT_A[a], CNT_B[b])
    CNT_A[a] -= n; X += [a] * n
    CNT_B[b] -= n; Y += [b] * n
    
  # 可能なら 10 以上を作る
  for b in range(10 - a0, 10):
    if CNT_A[a0] and CNT_B[b]:
      add(a0, b, 1)
      break
  # 9 以上を作っていく
  for a in range(10):
    for b in range(9 - a, 10):
      add(a, b)
  # 降順に追加
  for x in reversed(range(10)):
    X += [x] * CNT_A[x]
    Y += [x] * CNT_B[x]
  S = "".join(map(str, X[::-1]))
  T = "".join(map(str, Y[::-1]))
  return (S, T)

A = [int(x) for x in input()]
B = [int(x) for x in input()]
CNT_A = [0] * 10
CNT_B = [0] * 10
for x in A:
  CNT_A[x] += 1
for x in B:
  CNT_B[x] += 1

best = None, "", ""
for a0 in range(1, 10):
  a, b = solve(a0, CNT_A.copy(), CNT_B.copy())
  x = evaluate(a, b)
  if best[0] is None or best[0] > x:
    best = (x, a, b)
print(*best[1:], sep='\n')

Submission Info

Submission Time
Task C - Digit Sum Minimization
User maspy
Language Python (3.8.2)
Score 500
Code Size 1381 Byte
Status AC
Exec Time 644 ms
Memory 22268 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 500 / 500
Status
AC × 4
AC × 54
Set Name Test Cases
Sample 01_sample_01.txt, 01_sample_02.txt, 01_sample_03.txt, 01_sample_04.txt
All 01_sample_01.txt, 01_sample_02.txt, 01_sample_03.txt, 01_sample_04.txt, 02_small_random_01.txt, 02_small_random_02.txt, 02_small_random_03.txt, 02_small_random_04.txt, 02_small_random_05.txt, 02_small_random_06.txt, 02_small_random_07.txt, 02_small_random_08.txt, 02_small_random_09.txt, 02_small_random_10.txt, 03_large_random_01.txt, 03_large_random_02.txt, 03_large_random_03.txt, 03_large_random_04.txt, 03_large_random_05.txt, 03_large_random_06.txt, 03_large_random_07.txt, 03_large_random_08.txt, 03_large_random_09.txt, 03_large_random_10.txt, 03_large_random_11.txt, 03_large_random_12.txt, 03_large_random_13.txt, 03_large_random_14.txt, 03_large_random_15.txt, 03_large_random_16.txt, 03_large_random_17.txt, 03_large_random_18.txt, 03_large_random_19.txt, 03_large_random_20.txt, 04_small_ans_01.txt, 04_small_ans_02.txt, 04_small_ans_03.txt, 04_small_ans_04.txt, 04_small_ans_05.txt, 04_small_ans_06.txt, 04_small_ans_07.txt, 04_small_ans_08.txt, 04_small_ans_09.txt, 04_small_ans_10.txt, 04_small_ans_11.txt, 04_small_ans_12.txt, 04_small_ans_13.txt, 04_small_ans_14.txt, 04_small_ans_15.txt, 04_small_ans_16.txt, 04_small_ans_17.txt, 04_small_ans_18.txt, 04_small_ans_19.txt, 04_small_ans_20.txt
Case Name Status Exec Time Memory
01_sample_01.txt AC 19 ms 9016 KiB
01_sample_02.txt AC 31 ms 9188 KiB
01_sample_03.txt AC 17 ms 9184 KiB
01_sample_04.txt AC 19 ms 8992 KiB
02_small_random_01.txt AC 18 ms 9256 KiB
02_small_random_02.txt AC 17 ms 9024 KiB
02_small_random_03.txt AC 23 ms 9200 KiB
02_small_random_04.txt AC 23 ms 9024 KiB
02_small_random_05.txt AC 26 ms 8992 KiB
02_small_random_06.txt AC 29 ms 9188 KiB
02_small_random_07.txt AC 19 ms 9184 KiB
02_small_random_08.txt AC 26 ms 9184 KiB
02_small_random_09.txt AC 25 ms 9256 KiB
02_small_random_10.txt AC 19 ms 9320 KiB
03_large_random_01.txt AC 292 ms 16388 KiB
03_large_random_02.txt AC 544 ms 20148 KiB
03_large_random_03.txt AC 402 ms 19040 KiB
03_large_random_04.txt AC 156 ms 12412 KiB
03_large_random_05.txt AC 424 ms 19616 KiB
03_large_random_06.txt AC 324 ms 15840 KiB
03_large_random_07.txt AC 446 ms 17496 KiB
03_large_random_08.txt AC 280 ms 15740 KiB
03_large_random_09.txt AC 468 ms 19620 KiB
03_large_random_10.txt AC 303 ms 16872 KiB
03_large_random_11.txt AC 213 ms 14256 KiB
03_large_random_12.txt AC 132 ms 11544 KiB
03_large_random_13.txt AC 435 ms 18080 KiB
03_large_random_14.txt AC 232 ms 13688 KiB
03_large_random_15.txt AC 314 ms 16640 KiB
03_large_random_16.txt AC 383 ms 18224 KiB
03_large_random_17.txt AC 212 ms 14160 KiB
03_large_random_18.txt AC 334 ms 16912 KiB
03_large_random_19.txt AC 460 ms 19292 KiB
03_large_random_20.txt AC 372 ms 16776 KiB
04_small_ans_01.txt AC 629 ms 21444 KiB
04_small_ans_02.txt AC 591 ms 20856 KiB
04_small_ans_03.txt AC 588 ms 21252 KiB
04_small_ans_04.txt AC 628 ms 20852 KiB
04_small_ans_05.txt AC 595 ms 21216 KiB
04_small_ans_06.txt AC 626 ms 21200 KiB
04_small_ans_07.txt AC 644 ms 21500 KiB
04_small_ans_08.txt AC 602 ms 21724 KiB
04_small_ans_09.txt AC 633 ms 21204 KiB
04_small_ans_10.txt AC 615 ms 22268 KiB
04_small_ans_11.txt AC 623 ms 20824 KiB
04_small_ans_12.txt AC 588 ms 21076 KiB
04_small_ans_13.txt AC 587 ms 20792 KiB
04_small_ans_14.txt AC 622 ms 21068 KiB
04_small_ans_15.txt AC 588 ms 21820 KiB
04_small_ans_16.txt AC 605 ms 21964 KiB
04_small_ans_17.txt AC 608 ms 20896 KiB
04_small_ans_18.txt AC 593 ms 22068 KiB
04_small_ans_19.txt AC 623 ms 21780 KiB
04_small_ans_20.txt AC 587 ms 20688 KiB