結果
| 問題 | No.3396 ChRisTmas memory |
| コンテスト | |
| ユーザー |
👑 |
| 提出日時 | 2025-12-03 11:09:48 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 985 bytes |
| コンパイル時間 | 402 ms |
| コンパイル使用メモリ | 12,416 KB |
| 実行使用メモリ | 18,728 KB |
| 最終ジャッジ日時 | 2025-12-03 11:09:57 |
| 合計ジャッジ時間 | 8,613 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 10 TLE * 1 -- * 29 |
コンパイルメッセージ
Main.py:8: SyntaxWarning: invalid decimal literal a=-1if s%g!=t%g else(s%g+t//g*p*u+s//g*q*v)%(p*q//g) Main.py:33: SyntaxWarning: invalid decimal literal return -1if self.len else self.ans
ソースコード
def PartitionOfUnity(p,q): if q==0:return abs(p),1-2*(p<0),q g,c,d=PartitionOfUnity(q,p%q) return g,d,c-p//q*d def ChineseRemainderTheorem(p,s,q,t): g,u,v=PartitionOfUnity(p,q) a=-1if s%g!=t%g else(s%g+t//g*p*u+s//g*q*v)%(p*q//g) return g,a class DynamicChineseRemiderTheorem: def __init__(self): self.mod=1 self.ans=0 self.div=[] self.len=0 def append(self,base,res): assert base if self.len:self.len+=1;return g,a=ChineseRemainderTheorem(self.mod,self.ans,base,res) if a<0:self.len=1;return self.div+=[base//g] self.mod,self.ans=self.mod*self.div[-1],a def pop(self,n): for i in R(n): if self.len:self.len-=1 else:self.mod//=self.div.pop() if self.len<1:self.ans%=self.mod def Get(self): return -1if self.len else self.ans R=range J=lambda:map(int,input().split()) dcrt=DynamicChineseRemiderTheorem() for q in R(sum(J())): t,*v=J() if t<2:dcrt.append(v[0],v[1]) elif t<3:dcrt.pop(v[0]) else:a=dcrt.Get();print(a if a<0 else a%v[0])