結果

問題 No.68 よくある棒を切る問題 (2)
ユーザー lam6er
提出日時 2025-03-20 20:23:12
言語 PyPy3
(7.3.15)
結果
TLE  
実行時間 -
コード長 1,020 bytes
コンパイル時間 410 ms
コンパイル使用メモリ 82,388 KB
実行使用メモリ 123,192 KB
最終ジャッジ日時 2025-03-20 20:25:22
合計ジャッジ時間 13,009 ms
ジャッジサーバーID
(参考情報)
judge2 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other TLE * 1 -- * 9
権限があれば一括ダウンロードができます

ソースコード

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

import bisect
def main():
import sys
input = sys.stdin.read().split()
ptr = 0
N = int(input[ptr])
ptr += 1
L = list(map(int, input[ptr:ptr+N]))
ptr += N
L.sort()
Q = int(input[ptr])
ptr += 1
K_list = list(map(int, input[ptr:ptr+Q]))
ptr += Q
sum_L = sum(L)
for K in K_list:
if K == 0:
print("0.0")
continue
low = 0.0
high = sum_L / K if K != 0 else float('inf')
for _ in range(100):
mid = (low + high) / 2
if mid == 0.0:
total = 0
else:
p = bisect.bisect_left(L, mid)
total = 0
for i in range(p, N):
total += L[i] // mid
if total >= K:
break
if total >= K:
low = mid
else:
high = mid
print("{0:.15f}".format(low))
if __name__ == '__main__':
main()
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0