結果
| 問題 |
No.3022 一元一次式 mod 1000000000
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2025-02-14 22:52:15 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 414 ms / 2,000 ms |
| コード長 | 540 bytes |
| コンパイル時間 | 476 ms |
| コンパイル使用メモリ | 82,160 KB |
| 実行使用メモリ | 77,408 KB |
| 最終ジャッジ日時 | 2025-02-17 12:57:46 |
| 合計ジャッジ時間 | 2,694 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 21 |
ソースコード
# https://atcoder.jp/contests/abc186/tasks/abc186_e
from math import gcd
T = int(input())
for _ in range(T):
N, M = map(int, input().split())
MOD = 10 ** 9
N, S, K = MOD, M, N
if K % MOD == 0:
print(1 if S % MOD == 0 else -1)
continue
g = gcd(K, N)
if S % g:
print(-1)
else:
N //= g
S //= g
K //= g
# print(N, S, K)
# ans = -S * K^-1 (mod N)
ans = (N - S * pow(K, -1, N)) % N
if ans == 0:
ans += N
print(ans)