結果
問題 | No.321 (P,Q)-サンタと街の子供たち |
ユーザー |
|
提出日時 | 2023-08-05 10:54:59 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 97 ms / 2,000 ms |
コード長 | 1,066 bytes |
コンパイル時間 | 147 ms |
コンパイル使用メモリ | 82,436 KB |
実行使用メモリ | 76,304 KB |
最終ジャッジ日時 | 2024-10-15 08:04:39 |
合計ジャッジ時間 | 6,153 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 41 |
ソースコード
import sys input = lambda :sys.stdin.readline()[:-1] ni = lambda :int(input()) na = lambda :list(map(int,input().split())) yes = lambda :print("yes");Yes = lambda :print("Yes");YES = lambda : print("YES") no = lambda :print("no");No = lambda :print("No");NO = lambda : print("NO") ####################################################################### def norm(a): return a[0]*a[0]+a[1]*a[1] def round(a, b): return (a*2+b)//(2*b) def div(a, b): c = (round(a[0]*b[0] + a[1]*b[1], norm(b)), round(a[1]*b[0]-a[0]*b[1], norm(b))) return a[0] - b[0]*c[0] + b[1]*c[1], a[1] - b[0]*c[1] - b[1]*c[0] def gcd(a, b): if b == (0,0): return a return gcd(b, div(a, b)) p, q = na() if p == 0 and q == 0: n = ni() ans = 0 for i in range(n): x, y = na() if x == 0 and y == 0: ans += 1 print(ans) exit() r = gcd((p, q), (p, -q)) n = ni() ans = 0 for _ in range(n): x, y = na() if (r[0] * x + r[1] * y) % norm(r) == 0 and (r[0] * y - r[1] * x) % norm(r) == 0: ans += 1 print(ans)