結果
| 問題 |
No.2755 行列の共役類
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2023-08-07 21:47:41 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,110 bytes |
| コンパイル時間 | 296 ms |
| コンパイル使用メモリ | 82,432 KB |
| 実行使用メモリ | 78,720 KB |
| 最終ジャッジ日時 | 2024-11-08 03:13:09 |
| 合計ジャッジ時間 | 23,378 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 18 WA * 37 TLE * 2 -- * 9 |
ソースコード
import sys, time, random
from collections import deque, Counter, defaultdict
input = lambda: sys.stdin.readline().rstrip()
ii = lambda: int(input())
mi = lambda: map(int, input().split())
li = lambda: list(mi())
inf = 2 ** 63 - 1
mod = 998244353
from math import gcd
def inv_gcd(a,b):
a=a%b
if a==0:
return (b,0)
s=b;t=a
m0=0;m1=1
while(t):
u=s//t
s-=t*u
m0-=m1*u
s,t=t,s
m0,m1=m1,m0
if m0<0:
m0+=b//s
return (s,m0)
def inv_mod(x,m):
assert 1<=m
z=inv_gcd(x,m)
assert z[0]==1
return z[1]
B, C = mi()
S = set()
ans = 0
for p1 in range(0, B):
for p2 in range(0, B):
if gcd(p1, B) != 1 or p2 % C != 0 or (p1, p2) in S:
continue
ans += 1
if ans > 100:
print('100+'), exit()
for r1 in range(0, B):
for r2 in range(0, B):
if gcd(r1, B) != 1 or r2 % C != 0:
continue
q1 = p1 % B
q2 = (-r2 * (p1 * r2 + p2) * inv_mod(r1, B)) % B
S.add((q1, q2))
print(ans)