結果
| 問題 | No.3408 1215 Segments |
| コンテスト | |
| ユーザー |
Kude
|
| 提出日時 | 2025-12-16 10:48:47 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 221 ms / 2,500 ms |
| コード長 | 5,297 bytes |
| 記録 | |
| コンパイル時間 | 1,850 ms |
| コンパイル使用メモリ | 82,196 KB |
| 実行使用メモリ | 83,228 KB |
| 最終ジャッジ日時 | 2025-12-16 10:48:59 |
| 合計ジャッジ時間 | 11,898 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 46 |
ソースコード
s = b'{Wp48S^xk9=GL@E0stWa761SMbT8$j;3PE%TwMSdX4qpOhynqO;0KzSm2c^Yy_BZRt!Pn%ZY(2jZEa@_)MJynfv4nyob|K4uqNDEIE_hvNteajmFDrYxB3L%JOyYUZneun6HU+v(YXW={|fuuDx&1fW@d!<mDM2#Mahgh9VPGha*597+67mm*(WTr<yeuYy4HT~7v`jWQos%Y=SPY2k+;Ox>S&0VE{v8-3)RVHfxiE<^dHie3i(|G|BoRc$^O|7@U-7jU;Ec~MF`C>RTaix)@{&L1xd=XjtYW4oDmYLv?(FrNd~`&y<amh2Yw)lFdW6-%i`bc`b*ooG-+>T4f#?csRBKAFHL0FmaP&-(yl&Un5j@ac6t&{Mzv*mw<nLDs|+jlSo%95<8?1cuLoNP$Sg_b>WG0iL0SMm%}O_gQSri3I26(}5L-^}<Ed1Mj4h(LvbD;-Ah`QSf%ROM2vBR#Gnk0l{g1_4n%mn_PxJ*|g-UV#LX&}2)ozMM+Ug_$G!ggmzlkUXC3lR-0oPBeF3@7!f!&c8Km63s7?lI2Lt?-&C9v@bRbWfC9DcR!IFA{`0w12g8nM!HJsd$waE;F`oWWJ9FZfE86wzqHbJt;@05C27a3wledxvRaWky$nUSXIwiL0_Fe5Oh1y5NhE!cj&K&POe*W#j568XtU99Ybu3y2XuPqrGZ~=7<@$J5{Yw6hj<EK`byahw_u=DZI9Ta?s54X6F25GwfTO(ng%FweMHCZc4$7icBXVq%>GmA#IP`R1mcgJjs%?q1^zym@05z1BGjF=Dz7xhrBFrgKSn;#XUg9RiUrkmx`>^Fv{HOx;a!9Ne^r?eN-$BK~M^D^~UY37X{!2>FNUtOD0xqNGZ)LsT<2~W0%}FfAhRMK>E#8hWQ(6TO~{wtl39?+on5f7>V|bJ0gAn&*43yQ#UF8rRX)k3Cu#~;;dQgLDn@U;WXh#+?q;e8~g%bsE!n^{_2;21jJc#PU(imqybD4%an+FjQZ-7*1c0HHa2q4AMp{oA4;7$xUhP)=Qrb<aR}QfOC)%pSY+u+!<13HoQO>HxRWL$tGff3^4;@}e@-0OLG0t)UJYt6xP1la3>#883dqUb50!WC30*sOHaL~A?Rgg~i&!uVcQ@FEmSfy=K3xNQ6~6bjLkd-b<cLGLFE;b)`#{5#(jr(-2R2$4zR_(=5e3{&H2kRVhC`Fw89m43H`CDJi7gTLwNhM+nW9D3@J1Ox_RXPVLRzj)G7^GZHyUjz@q%G_VU0+-!L2xRmL$F8fnmj!<C>w>^2))#Wv(WlDcuSi07muW{Dg$j;=dpSa-TPcw2t_oLP1z|$(G(?EZQ`|Nk+=U2(q-j`MsEJm)J*a03XVDkb2eGcYs?u%gQ&@Q5aG&iH$sgOwr=6N)j%u>{93dRn-Vgb0Dxrsfn-{DbEmS)*{-~aCpu=I7?xAll`BU9>l^y;&nd|IsrP}V6|3MlQW{}Q5;@npNgU6FV%0jUR$C(M|~|jqg(efDt!?l`jn2rm|boL`C=z4g5jgQ`(Kmc<Y#19_{B8zmVcx*UMf6Kb=j2Z2*Z@Fx6CMbRUqYE=ya^1ZaIZ2(7A#=5q-JKr^=&1`JBcXB-%4c1IDpco!BUTMYw<pIywf_jD8dt52utDrA3IAEnVD5+1VCRF;g)WCUlnVJ7c7X&sbcMb!u-3K0RF4r>#f4DoJEP$AYL{9G(Th>l@-xj4V;s<N}|qLn0g)AmVRCtu0hX)3-y?CqrEMV<mxnVdTMV#*s^hEf-D1`yA0DHr-VihrrqJ`KqX@&bQFmi0?}W5Z6=ehtMrpP=j8_?$ofEd{-LT&N>L^x*aI_+8E+TD9pa2JZkvfN?Ciz;G!y_0s`m;6Up1XaXKrz5Du01$(kI2$tK!lj{hz_4kmL(7#jYvYy#<PXi&+sdEtgi4e)w6wr_k$du)^{jK~NUh})|V&ZPY)IP#XdKSkEi0q6dLB^Awk6~mCr{8QTFBe?+X-c_#tt(5hYM^TsoLr$-}|LlS6K=9XbP!Z}^w!n0-_aCKj6*>xfCM=vZytA1Q$P*~o!8dVxMocY9DOZO=ktj<s-2uwn?zQq2dH%(d4H;<-;M(unZUkcSBC9p8(qaiBAVn7=>SGCAN9c}fa5c#kn!Cj&6Y;-9uH%~}KCM@!b^VfxzRD5}4hEV7gg7xv%VTzO8zSKJV8PP3t5UnH)vOdO-rZSZGE&Jz>l27$e)ch&7`@4`D-+DT#vqR13@4td<itNYge{dTPg4<x>Nj)VNEkXdm!riYc`~JK;ur8SNA?Aw3zUZi6QTS*!Re?ERjg}`l*^4dz}?HAlzvo~(83I!d3*?g&fXar3f8TJ_)5mKTO!hD7!~<olVk11?yOp$%Ex*dCP^<rV*RJMh&HY`bRbzQI8&cHAYdRmzf{z@hP*Ad$GJ#?G7JL)w1nLN^UyBhc&={+00H<8wnzW~_B=GhvBYQl0ssI200dcD'
import base64, lzma
s = lzma.decompress(base64.b85decode(s)).decode()
d = zip(*[map(int, iter(s))] * 15)
vals = [0,0,1,1,2,3,4,5,6,6,7,7,8,9,9]
val2id = [[] for _ in range(10)]
for i in range(15):
val2id[vals[i]].append(i)
n = list(map(int, input()))
ans = 10 ** 19
for f0 in d:
rest = 19 - sum(f0)
for c35 in range(rest // 2 + 1):
for c12 in range(rest - 2 * c35 + 1):
f = list(f0)
f[3] += c35
f[5] += c35
f[12] += c12
if sum(f) < len(n):
continue
if sum(f) > len(n):
v = 0
for i in range(2, 15):
for _ in range(f[i]):
v = 10 * v + vals[i]
for _ in range(f[0] + f[1]):
v *= 10
f[0] = f[1] = 0
ans = min(ans, v)
else:
digits = []
ok = True
for i in range(len(n)):
for p in val2id[n[i]]:
if f[p]:
f[p] -= 1
digits.append(vals[p])
break
else:
for p in range(val2id[n[i]][0], 15):
if f[p]:
f[p] -= 1
digits.append(vals[p])
for p in range(15):
for _ in range(f[p]):
digits.append(vals[p])
break
else:
for p in range(15)[::-1]:
for _ in range(f[p]):
digits.append(vals[p])
for j in range(len(digits) - 1)[::-1]:
if digits[j] < digits[j+1]:
k = len(digits) - 1
while digits[k] <= digits[j]:
k -= 1
digits[j], digits[k] = digits[k], digits[j]
j += 1
k = len(digits) - 1
while j < k:
digits[j], digits[k] = digits[k], digits[j]
j += 1
k -= 1
break
else:
ok = False
break
if ok:
v = 0
for x in digits:
v = 10 * v + x
ans = min(ans, v)
print(ans)
Kude