結果
| 問題 |
No.68 よくある棒を切る問題 (2)
|
| コンテスト | |
| ユーザー |
hang_hang_cln
|
| 提出日時 | 2018-06-14 21:57:27 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 889 bytes |
| コンパイル時間 | 246 ms |
| コンパイル使用メモリ | 12,544 KB |
| 実行使用メモリ | 31,472 KB |
| 最終ジャッジ日時 | 2024-06-30 14:30:33 |
| 合計ジャッジ時間 | 13,098 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | TLE * 1 -- * 9 |
ソースコード
N = int(input())
stickList = list(map(int,input().split()))
Q = int(input())
KList = list(map(int,input().split()))
def countCuttedSticks(stickList, cutLength):
count = 0
for stick in stickList:
count += stick // cutLength
return count
def main():
for K in KList:
low = 0
high = max(stickList)
if countCuttedSticks(stickList, high) == K:
print(high)
else:
previousAns = -1
while(high - low >= 10 ** -8):
ans = (low + high) / 2
if countCuttedSticks(stickList, ans) >= K: # 本数を少なくするために切る長さを長くする
low = ans
else: # 本数を多くするために切る長さを短くする
high = ans
print(ans)
if __name__ == '__main__':
main()
hang_hang_cln