結果
| 問題 |
No.37 遊園地のアトラクション
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2022-11-25 18:44:36 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 948 bytes |
| コンパイル時間 | 108 ms |
| コンパイル使用メモリ | 12,672 KB |
| 実行使用メモリ | 10,880 KB |
| 最終ジャッジ日時 | 2024-10-02 01:33:01 |
| 合計ジャッジ時間 | 2,197 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 WA * 1 |
| other | AC * 24 WA * 3 |
ソースコード
class Attraction:
def __init__(self, satis: int, waiting: int) -> None:
self.satisfied = satis
self.waiting = waiting
def visited(self):
self.satisfied //= 2
@property
def satis_per_h(self) -> float:
return self.satisfied / self.waiting
def main():
T = int(input())
N = int(input())
c = list(map(int, input().split()))
v = list(map(int, input().split()))
attractions = [Attraction(satis, waiting) for satis, waiting in zip(v, c)]
attractions = list(filter(lambda att: att.waiting <= T, attractions))
sum_satisfied = 0
while attractions:
attractions.sort(key=lambda att: att.satis_per_h)
sum_satisfied += attractions[-1].satisfied
attractions[-1].visited()
T -= attractions[-1].waiting
attractions = list(filter(lambda att: att.waiting <= T, attractions))
print(sum_satisfied)
if __name__ == "__main__":
main()