結果
問題 |
No.435 占い(Extra)
|
ユーザー |
![]() |
提出日時 | 2023-04-26 01:18:17 |
言語 | PyPy3 (7.3.15) |
結果 |
MLE
|
実行時間 | - |
コード長 | 868 bytes |
コンパイル時間 | 282 ms |
コンパイル使用メモリ | 82,460 KB |
実行使用メモリ | 231,780 KB |
最終ジャッジ日時 | 2024-11-15 09:44:02 |
合計ジャッジ時間 | 13,505 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
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()) S=[0]*n S[0]=x for i in range(n-1): S[i+1]=((S[i]^a) +b)%m for i in range(n): S[i]%=10 if S==[0]*len(S): print(0) continue ANS=0 TWO=1 THREE=0 for i in range(len(S)): if i==0 or i==len(S)-1: ANS=(ANS+S[i])%9 continue x=i while x%3==0: x//=3 THREE-=1 TWO=TWO*INV[x%9]%9 x=len(S)-i while x%3==0: x//=3 THREE+=1 TWO=TWO*x%9 #print(TWO,THREE) if THREE==0: ANS=(ANS+S[i]*TWO)%9 elif THREE==1: ANS=(ANS+S[i]*TWO*3)%9 if ANS==0: ANS=9 print(ANS)