結果

問題 No.1819 Mirrored 2
ユーザー zkouzkou
提出日時 2022-01-21 23:09:20
言語 PyPy3
(7.3.15)
結果
RE  
(最新)
AC  
(最初)
実行時間 -
コード長 746 bytes
コンパイル時間 276 ms
コンパイル使用メモリ 82,404 KB
実行使用メモリ 70,332 KB
最終ジャッジ日時 2024-05-04 16:42:06
合計ジャッジ時間 2,638 ms
ジャッジサーバーID
(参考情報)
judge5 / judge4
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 RE -
testcase_01 RE -
testcase_02 RE -
testcase_03 RE -
testcase_04 RE -
testcase_05 RE -
testcase_06 RE -
testcase_07 RE -
testcase_08 RE -
testcase_09 RE -
testcase_10 RE -
testcase_11 RE -
testcase_12 RE -
testcase_13 RE -
testcase_14 RE -
testcase_15 RE -
testcase_16 RE -
testcase_17 RE -
testcase_18 RE -
testcase_19 RE -
testcase_20 RE -
testcase_21 RE -
testcase_22 RE -
testcase_23 RE -
testcase_24 RE -
testcase_25 RE -
testcase_26 RE -
権限があれば一括ダウンロードができます

ソースコード

diff #

P, Q, x, y = map(int, input().split())
for n in range(10 ** 4):
    q = n * Q + Q
    z = n * Q + y
    if z % 10 == 0:
        continue
    d = len(str(q))
    rev_z = int(str(z).zfill(d)[::-1])
    rev_q = int(str(q)[::-1])
    if (x - rev_q) % P == 0 or rev_z % P == 0:
        continue
    goal = (x - rev_q) * pow(rev_z, P - 2, P) % P
    k = d
    t = pow(10, k, P)
    # print(goal)
    while t != goal:
        k += 1
        t *= 10
        t %= P
    # print(pow(10, k, P), goal) 
    break

answer_int = rev_z * 10 ** k + rev_q
# print(k)
# print(q, z)

# assert len(str(answer_int)) <= 10 ** 5
# assert answer_int % P == x, f"{answer_int % P, x}"
# assert int(str(answer_int)[::-1]) % Q == y, f"{answer_int % Q, y}"

print(answer_int)
0