結果
| 問題 |
No.1458 Segment Function
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2025-09-18 00:02:04 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 59 ms / 2,000 ms |
| コード長 | 1,015 bytes |
| コンパイル時間 | 438 ms |
| コンパイル使用メモリ | 82,400 KB |
| 実行使用メモリ | 75,316 KB |
| 最終ジャッジ日時 | 2025-09-18 00:02:09 |
| 合計ジャッジ時間 | 4,342 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 32 |
ソースコード
## https://yukicoder.me/problems/no/1458
MOD = 10 ** 9 + 7
f_map = [6, 2, 5, 5, 4, 5, 6, 4, 7, 6]
def main():
P, N = input().split()
def func(p: str):
answer = 0
q = p
if "-" == p[0]:
answer += 1
q = p[1:]
for x in q:
answer += f_map[int(x)]
answer = str(answer)
return answer
a_map = {}
p = P
n = 0
while p not in a_map:
a_map[p] = n
p = func(p)
n += 1
n_max = n
n_start = a_map[p]
if len(N) < 10:
if int(N) <= n_start:
for key, value in a_map.items():
if value == int(N):
print(key)
return
K = n_max - n_start
x = (-n_start) % K
for n in N:
x += int(n) % K
for key, value in a_map.items():
if value - n_start == x:
print(key)
return
if __name__ == "__main__":
main()