結果
| 問題 |
No.187 中華風 (Hard)
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2022-11-11 13:59:50 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 469 ms / 3,000 ms |
| コード長 | 730 bytes |
| コンパイル時間 | 381 ms |
| コンパイル使用メモリ | 82,272 KB |
| 実行使用メモリ | 77,056 KB |
| 最終ジャッジ日時 | 2024-09-13 09:46:30 |
| 合計ジャッジ時間 | 6,459 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 25 |
ソースコード
# https://yukicoder.me/problems/no/187
import sys
input = sys.stdin.readline
from math import gcd
def ext_gcd(a, b):
if b==0:
return 1, 0
s, t = ext_gcd(b, a%b)
return t, s-a//b*t
def crt(rs, ms):
r, m = 0, 1
for ri, mi in zip(rs, ms):
p, q = ext_gcd(m, mi)
g = gcd(m, mi)
if (ri-r)%g!=0:
return -1, -1
r += m*(ri-r)//g*p
m *= mi//g
r %= m
return r, m
N = int(input())
rs, ms = [], []
for _ in range(N):
r, m = map(int, input().split())
rs.append(r)
ms.append(m)
r, m = crt(rs, ms)
if r==-1:
print(r)
else:
if r==0:
print(m%(10**9+7))
else:
print(r%(10**9+7))