結果
問題 |
No.849 yuki国の分割統治
|
ユーザー |
|
提出日時 | 2021-02-25 12:33:44 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
AC
|
実行時間 | 316 ms / 2,000 ms |
コード長 | 654 bytes |
コンパイル時間 | 161 ms |
コンパイル使用メモリ | 12,672 KB |
実行使用メモリ | 40,260 KB |
最終ジャッジ日時 | 2024-09-25 10:58:45 |
合計ジャッジ時間 | 7,194 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 26 |
ソースコード
import sys from math import gcd input = sys.stdin.buffer.readline A, B, C, D = map(int, input().split()) N = int(input()) XY = [tuple(map(int, input().split())) for _ in range(N)] det = A * D - B * C st = set() if det: for X, Y in XY: st.add(((D * X - C * Y) % det, (-B * X + A * Y) % det)) else: gAC = gcd(A, C) gBD = gcd(B, D) if not gAC: for X, Y in XY: st.add((X, Y % gBD)) elif not gBD: for X, Y in XY: st.add((X % gAC, Y)) else: for X, Y in XY: M = min(X // gAC, Y // gBD) st.add((X - M * gAC, Y - M * gBD)) print(len(st))