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 |
|
|
| 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 |