結果
| 問題 |
No.186 中華風 (Easy)
|
| コンテスト | |
| ユーザー |
snuke
|
| 提出日時 | 2015-04-20 15:58:28 |
| 言語 | Python2 (2.7.18) |
| 結果 |
WA
(最新)
AC
(最初)
|
| 実行時間 | - |
| コード長 | 704 bytes |
| コンパイル時間 | 589 ms |
| コンパイル使用メモリ | 6,912 KB |
| 実行使用メモリ | 6,944 KB |
| 最終ジャッジ日時 | 2024-07-04 18:13:29 |
| 合計ジャッジ時間 | 1,707 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 22 WA * 1 |
ソースコード
n = 3
a = 0
b = 1
def extgcd(x,y):
if y == 0: return (x,1,0)
g,a,b = extgcd(y,x%y);
return (g,b,a-x//y*b)
def factor(x):
r = []
i = 2
while i*i < x:
while x%i == 0:
r.append(i)
x /= i
i += 1
if x != 1: r.append(x)
return r
def f(x,p):
r = 1
while x%p == 0:
x /= p
r *= p
return r
def fail():
print -1
exit(0)
for ti in xrange(n):
na,nb = map(int,raw_input().split())
g = extgcd(b,nb)[0]
if a%g != na%g: fail()
for p in factor(g):
p1 = f(b,p)
p2 = f(nb,p)
if p1 < p2:
b /= p1
a %= b
else:
nb /= p2
na %= nb
x,y = extgcd(b,nb)[1:]
a = x*b*na + y*nb*a
b *= nb
a %= b
if a == 0: a = b
print a
snuke