https://www.acmicpc.net/problem/10909
사원수 \(a+bi+cj+dj\) 의 역원은 \(\frac{a-bi-cj-dj}{a^2+b^2+c^2+d^2}\) 이다.
이거에 mod 달면 그냥 답이 나오는데... 분모의 역원이 존재하지 않을 경우를 체크하지 않고 삽질함
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
import sys
input = sys.stdin.readline
def gcd(x, y):
while y:
x, y = y, x % y
return x
def xgcd(a, b):
if b == 0:
return (1, 0, a)
x, y, d = xgcd(b, a % b)
return (y, x - (a // b) * y, d)
def inv(a, i):
x, y, d = xgcd(a, i)
return x
m, t = map(int, input().split())
while t:
t -= 1
a, b, c, d = map(int, input().split())
n = (a*a+b*b+c*c+d*d)%m
if gcd(n, m) > 1:
print(0, 0, 0, 0)
continue
g = inv(n, m)
print((a*g)%m, (-b*g)%m, (-c*g)%m, (-d*g)%m)
|
cs |
'백준 문제풀이' 카테고리의 다른 글
백준 2575 - 수열 [Python] (0) | 2021.06.24 |
---|---|
백준 14700 - 넴모넴모 (Hard) [C++] (0) | 2021.06.07 |
백준 21735 - 눈덩이 굴리기 [C++/Python] (0) | 2021.05.23 |
백준 17469 - 트리의 색깔과 쿼리 [Python] (0) | 2021.05.17 |
백준 14180 - 배열의 특징 [Python] (0) | 2021.05.09 |