結果
問題 |
No.435 占い(Extra)
|
ユーザー |
![]() |
提出日時 | 2023-04-26 02:33:34 |
言語 | PyPy3 (7.3.15) |
結果 |
MLE
|
実行時間 | - |
コード長 | 970 bytes |
コンパイル時間 | 338 ms |
コンパイル使用メモリ | 82,164 KB |
実行使用メモリ | 77,568 KB |
最終ジャッジ日時 | 2024-11-15 11:15:02 |
合計ジャッジ時間 | 11,727 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | MLE * 4 |
other | MLE * 32 |
ソースコード
# 3を除けば9の余りを考えて良い。 INV=[0,1,5,0,7,2,0,4,8] T=int(input()) for tests in range(T): n,x,a,b,m=map(int,input().split()) now=x flag0=0 if now==0: flag0=1 ANS=0 TWO=1 THREE=0 for i in range(n): if i==0: ANS=(ANS+now%10)%9 continue now=((now^a)+b)%m if i==n-1: ANS=(ANS+now%10)%9 continue if now%10!=0: flag0=0 x=i while x%3==0: x//=3 THREE-=1 TWO=TWO*INV[x%9]%9 x=n-i while x%3==0: x//=3 THREE+=1 TWO=TWO*x%9 #print(TWO,THREE) if THREE==0: ANS=(ANS+(now%10)*TWO)%9 elif THREE==1: ANS=(ANS+(now%10)*TWO*3)%9 if flag0==1: print(0) continue if ANS==0: ANS=9 print(ANS)