結果
| 問題 | 
                            No.2443 特殊線形群の標準表現
                             | 
                    
| コンテスト | |
| ユーザー | 
                             ニックネーム
                         | 
                    
| 提出日時 | 2023-08-25 22:20:56 | 
| 言語 | Python3  (3.13.1 + numpy 2.2.1 + scipy 1.14.1)  | 
                    
| 結果 | 
                             
                                AC
                                 
                             
                            
                         | 
                    
| 実行時間 | 2,157 ms / 3,000 ms | 
| コード長 | 542 bytes | 
| コンパイル時間 | 195 ms | 
| コンパイル使用メモリ | 12,544 KB | 
| 実行使用メモリ | 35,200 KB | 
| 最終ジャッジ日時 | 2024-12-24 09:32:44 | 
| 合計ジャッジ時間 | 15,361 ms | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge3 / judge2 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| other | AC * 21 | 
ソースコード
def mul(x,y):
    x11,x12,x21,x22 = x; y11,y12,y21,y22 = y
    return (x11*y11+x12*y21)%b,(x11*y12+x12*y22)%b,(x21*y11+x22*y21)%b,(x21*y12+x22*y22)%b
n,b,q = map(int,input().split())
a = [(1,0,0,1)]
for _ in range(n):
    a1 = list(map(int,input().split()))
    a2 = list(map(int,input().split()))
    a.append(a1+a2)
for i in range(n): a[i+1] = mul(a[i+1],a[i])
for _ in range(q):
    l,r,x,y = map(int,input().split())
    l11,l12,l21,l22 = a[l]
    z11,z12,z21,z22 = mul(a[r],(l22,-l12,-l21,l11))
    print((z11*x+z12*y)%b,(z21*x+z22*y)%b)
            
            
            
        
            
ニックネーム