結果
| 問題 |
No.435 占い(Extra)
|
| コンテスト | |
| ユーザー |
titia
|
| 提出日時 | 2023-04-26 02:32:48 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 867 bytes |
| コンパイル時間 | 302 ms |
| コンパイル使用メモリ | 12,800 KB |
| 実行使用メモリ | 21,760 KB |
| 最終ジャッジ日時 | 2024-11-15 11:12:21 |
| 合計ジャッジ時間 | 59,594 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 WA * 1 |
| other | AC * 15 WA * 2 TLE * 15 |
ソースコード
# 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 ANS==0:
ANS=9
print(ANS)
titia