結果
| 問題 |
No.435 占い(Extra)
|
| コンテスト | |
| ユーザー |
titia
|
| 提出日時 | 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)
titia