結果

問題 No.313 π
ユーザー rpy3cpp
提出日時 2015-12-07 23:05:34
言語 Python3
(3.13.1 + numpy 2.2.1 + scipy 1.14.1)
結果
AC  
実行時間 147 ms / 5,000 ms
コード長 1,143 bytes
コンパイル時間 139 ms
コンパイル使用メモリ 12,672 KB
実行使用メモリ 21,008 KB
最終ジャッジ日時 2024-09-14 18:32:23
合計ジャッジ時間 6,213 ms
ジャッジサーバーID
(参考情報)
judge1 / judge5
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 2
other AC * 32
権限があれば一括ダウンロードができます

ソースコード

diff #
プレゼンテーションモードにする

def compress(ps):
ps, depth = adjust_to_pow2(ps)
t = build_segtree(ps)
return [calc_partial_sum(t, d) % 10 for d in range(depth + 1)]
def adjust_to_pow2(ps):
n = len(ps)
depth = len(bin(n - 1)) - 2
adjusted_length = 1 << depth
return ps + [0] * (adjusted_length - n), depth
def build_segtree(ps):
n = len(ps)
segtree = [0] * n + ps
for i in range(n - 1, 0, -1):
segtree[i] = segtree[i << 1] + segtree[(i << 1) | 1]
return segtree
def calc_partial_sum(t, d):
return sum(t[i] for i in range(1 << d, 2 << d, 2))
def detect_dif(correct, wrong):
dif = correct[0] - wrong[0]
idx = 0
depth = len(correct) - 1
for c, w in zip(correct[1:], wrong[1:]):
depth -= 1
if c == w:
idx += 1 << depth
return idx, dif
def solve(qs, correct):
wrong = compress(qs)
idx, dif = detect_dif(correct, wrong)
return qs[idx], (qs[idx] + dif) % 10
if __name__ == '__main__':
correct = [7, 9, 1, 9, 6, 8, 1, 5, 9, 8, 1, 4, 9, 4, 1, 1, 6, 1, 1]
qi = input()
qi = qi[0] + qi[2:]
qs = list(map(int, qi))
print(*solve(qs, correct))
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0