結果
| 問題 |
No.434 占い
|
| コンテスト | |
| ユーザー |
titia
|
| 提出日時 | 2023-04-26 01:13:36 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
AC
|
| 実行時間 | 758 ms / 2,000 ms |
| コード長 | 790 bytes |
| コンパイル時間 | 515 ms |
| コンパイル使用メモリ | 12,672 KB |
| 実行使用メモリ | 12,416 KB |
| 最終ジャッジ日時 | 2024-11-15 09:38:19 |
| 合計ジャッジ時間 | 6,141 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 27 |
ソースコード
# 3を除けば9の余りを考えて良い。
INV=[0,1,5,0,7,2,0,4,8]
T=int(input())
for tests in range(T):
S=list(map(int,list(input())))
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