結果
問題 |
No.434 占い
|
ユーザー |
![]() |
提出日時 | 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)