結果
問題 |
No.435 占い(Extra)
|
ユーザー |
![]() |
提出日時 | 2016-04-29 16:41:04 |
言語 | PyPy3 (7.3.15) |
結果 |
MLE
|
実行時間 | - |
コード長 | 1,179 bytes |
コンパイル時間 | 266 ms |
コンパイル使用メモリ | 82,312 KB |
実行使用メモリ | 72,212 KB |
最終ジャッジ日時 | 2024-10-08 11:27:35 |
合計ジャッジ時間 | 4,431 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | MLE * 4 |
other | MLE * 32 |
ソースコード
from ctypes import * libc=CDLL("libSystem.B.dylib") #libc = CDLL("libc.so.6") printf = libc.printf scanf = libc.scanf #!/usr/bin/env python3 num_idx=[0,0,1,0,2,5,0,4,3,0] two_idx=[1,2,4,8,7,5] t=c_int() scanf(b"%d",byref(t)) buf=(c_char* 2000001)() for loop in range(t.value): scanf(b"%s",byref(buf)) s=str(buf.value.decode('utf-8')) n=len(s) allzero=True for i in range(n): if s[i]!='0': allzero=False if allzero: print("0") continue ans=0 num=n-1 den=1 two=0 three=0 for i in range(n): if three<=1: cur=int(s[i]); cur=cur*two_idx[two%6] if three==1: cur*=3 ans+=cur; if i==n-1: break; tmp=num; while tmp%3==0: tmp/=3 three+=1 two+=(num_idx[int(tmp%9)]); tmp=den; while tmp%3==0: tmp/=3 three-=1; two+=(6-num_idx[int(tmp%9)]); num-=1 den+=1 ans%=9 if ans ==0: ans=9; printf(b"%d\n",ans);