結果
問題 |
No.435 占い(Extra)
|
ユーザー |
![]() |
提出日時 | 2023-04-26 01:17:28 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
MLE
|
実行時間 | - |
コード長 | 868 bytes |
コンパイル時間 | 234 ms |
コンパイル使用メモリ | 12,800 KB |
実行使用メモリ | 386,296 KB |
最終ジャッジ日時 | 2024-11-15 09:42:44 |
合計ジャッジ時間 | 62,850 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 MLE * 2 |
other | AC * 12 TLE * 14 MLE * 6 |
ソースコード
# 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)