提出 #15217464
ソースコード 拡げる
import sys
from heapq import heappush, heappop, heappushpop
import itertools
read = sys.stdin.buffer.read
readline = sys.stdin.buffer.readline
readlines = sys.stdin.buffer.readlines
def main(N):
def f(x):
for d in range(2, 6):
q, r = divmod(x, d)
if r == 0:
yield q, f'*{d}'
for d in range(2, 6):
for a in range(d):
yield x * d + a, f'//{d}'
par = dict()
q = [-N] # 作れる数。上位 100 件を持つ。
maxsize = 100
for _ in range(1000):
if max(q) >= -5:
break
newq = []
for x in q:
x = -x
for y, string in f(x):
if y in par:
continue
par[y] = string
if len(newq) < maxsize:
heappush(newq, -y)
else:
heappushpop(newq, -y)
q = newq
# 復元する
x = -max(q)
expressions = [str(x)]
while x != N:
string = par[x]
expressions.append(string)
x = eval(str(x) + string)
expression = ''.join(expressions)
assert eval(expression) == N, (N, expression)
return expression.replace('//', '/')
N = int(read())
print(main(N))
提出情報
| 提出日時 | |
|---|---|
| 問題 | H - 整数をつくろう! |
| ユーザ | maspy |
| 言語 | Python (3.8.2) |
| 得点 | 141.98 |
| コード長 | 1320 Byte |
| 結果 | AC |
| 実行時間 | 479 ms |
| メモリ | 86736 KiB |
ジャッジ結果
| セット名 | Sample | Subtask1 | Subtask2 | Subtask3 | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 5 / 5 | 10 / 10 | 126.98 / 85 | ||||||||
| 結果 |
|
|
|
|
| セット名 | テストケース |
|---|---|
| Sample | sample_01.txt, sample_02.txt, sample_03.txt |
| Subtask1 | sample_01.txt, sample_02.txt, sample_03.txt, small_01.txt, small_02.txt, small_03.txt, small_04.txt, small_05.txt |
| Subtask2 | sample_01.txt, sample_02.txt, sample_03.txt, small_01.txt, small_02.txt, small_03.txt, small_04.txt, small_05.txt, mid_01.txt, mid_02.txt, mid_03.txt, mid_04.txt, mid_05.txt |
| Subtask3 | score_01.txt, score_02.txt, score_03.txt, score_04.txt, score_05.txt, score_06.txt, score_07.txt, score_08.txt, score_09.txt, score_10.txt |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| mid_01.txt | AC | 70 ms | 14572 KiB |
| mid_02.txt | AC | 70 ms | 14180 KiB |
| mid_03.txt | AC | 64 ms | 14576 KiB |
| mid_04.txt | AC | 69 ms | 14124 KiB |
| mid_05.txt | AC | 73 ms | 14472 KiB |
| sample_01.txt | AC | 24 ms | 9232 KiB |
| sample_02.txt | AC | 28 ms | 9404 KiB |
| sample_03.txt | AC | 26 ms | 9332 KiB |
| score_01.txt | AC | 473 ms | 86736 KiB |
| score_02.txt | AC | 463 ms | 86156 KiB |
| score_03.txt | AC | 468 ms | 86620 KiB |
| score_04.txt | AC | 479 ms | 86648 KiB |
| score_05.txt | AC | 445 ms | 65056 KiB |
| score_06.txt | AC | 479 ms | 86652 KiB |
| score_07.txt | AC | 465 ms | 86036 KiB |
| score_08.txt | AC | 466 ms | 86236 KiB |
| score_09.txt | AC | 437 ms | 64856 KiB |
| score_10.txt | AC | 443 ms | 65744 KiB |
| small_01.txt | AC | 35 ms | 9680 KiB |
| small_02.txt | AC | 27 ms | 9636 KiB |
| small_03.txt | AC | 37 ms | 9936 KiB |
| small_04.txt | AC | 29 ms | 9652 KiB |
| small_05.txt | AC | 40 ms | 10040 KiB |