結果
問題 | No.1936 Rational Approximation |
ユーザー |
![]() |
提出日時 | 2022-05-13 23:19:00 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
RE
|
実行時間 | - |
コード長 | 503 bytes |
コンパイル時間 | 291 ms |
コンパイル使用メモリ | 12,544 KB |
実行使用メモリ | 10,880 KB |
最終ジャッジ日時 | 2024-07-22 03:34:46 |
合計ジャッジ時間 | 1,343 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | RE * 1 |
other | RE * 14 |
ソースコード
from math import gcd def modinv(a, b): p = b x, y, u, v = 1, 0, 0, 1 while b: k = a // b x -= k * u y -= k * v x, u = u, x y, v = v, y a, b = b, a % b x %= p if x < 0: x += p return x def calcR(p, q): inv = modinv(-p, q) G = gcd(inv-Q, P) return (inv-Q+P)/G def calcL(p, q): inv = modinv(q, -p) G = gcd(inv-P, Q) return (inv-P+Q)/G p, q = map(int, input().split()) print(calcL(p, q)+calcR(p, q))