結果
問題 | No.187 中華風 (Hard) |
ユーザー | onexisan |
提出日時 | 2015-05-21 01:17:05 |
言語 | Python2 (2.7.18) |
結果 |
AC
|
実行時間 | 1,339 ms / 3,000 ms |
コード長 | 764 bytes |
コンパイル時間 | 227 ms |
コンパイル使用メモリ | 6,912 KB |
実行使用メモリ | 8,576 KB |
最終ジャッジ日時 | 2024-07-06 04:19:06 |
合計ジャッジ時間 | 13,206 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 21 ms
8,064 KB |
testcase_01 | AC | 21 ms
8,192 KB |
testcase_02 | AC | 703 ms
8,192 KB |
testcase_03 | AC | 682 ms
8,192 KB |
testcase_04 | AC | 660 ms
8,448 KB |
testcase_05 | AC | 671 ms
8,320 KB |
testcase_06 | AC | 661 ms
8,448 KB |
testcase_07 | AC | 661 ms
8,448 KB |
testcase_08 | AC | 718 ms
8,448 KB |
testcase_09 | AC | 749 ms
8,448 KB |
testcase_10 | AC | 720 ms
8,576 KB |
testcase_11 | AC | 679 ms
8,320 KB |
testcase_12 | AC | 697 ms
8,448 KB |
testcase_13 | AC | 24 ms
8,064 KB |
testcase_14 | AC | 25 ms
8,192 KB |
testcase_15 | AC | 1,295 ms
8,320 KB |
testcase_16 | AC | 1,339 ms
8,320 KB |
testcase_17 | AC | 19 ms
7,936 KB |
testcase_18 | AC | 21 ms
8,064 KB |
testcase_19 | AC | 19 ms
7,936 KB |
testcase_20 | AC | 467 ms
8,320 KB |
testcase_21 | AC | 19 ms
8,064 KB |
testcase_22 | AC | 660 ms
8,448 KB |
testcase_23 | AC | 21 ms
8,192 KB |
testcase_24 | AC | 19 ms
8,064 KB |
ソースコード
from fractions import gcd def inv(a, m): b, x, y = m, 1, 0 while b != 0: t = a // b a, b = b, a - t * b x, y = y, x - t * y pass return x % m def CRT(congs): x, m = 0, 1 for y, n in congs: _y, _n = y, n g = gcd(m, n) if x % g != y % g: return -1, -1 m //= g; l = m * n _m = m while True: t = gcd(m * _m, l) if t == m: break m = t n //= gcd(m, n) x %= m; x += (y - x % n) * inv(m, n) % n * m; m *= n pass return x, m mod = 10 ** 9 + 7 n = input() congs = [map(int, raw_input().split()) for _ in xrange(n)] ans = CRT(congs)[0] if ans == 0: ans = CRT(congs)[1] print -1 if ans == -1 else ans % mod