提出 #68048186
ソースコード 拡げる
import sys
import heapq
from typing import List, Tuple
def get_max_earnings(n: int, d: int, jobs: List[Tuple[int, int]]) -> int:
"""
最大収益を計算する関数
Parameters:
- n: int - 仕事の数
- d: int - 就業可能日数
- jobs: List[Tuple[int, int]] - 各仕事の情報 (開始日Xi, 報酬Yi)
Returns:
- int - 得られる最大報酬の合計
"""
# 各日ごとの仕事リストに分類
job_by_day: List[List[int]] = [[] for _ in range(d + 1)]
for x, y in jobs:
if x <= d:
job_by_day[x].append(y)
# 最大ヒープ(heapqで負値にして使用)
max_heap: List[int] = []
total: int = 0
for day in range(1, d + 1):
# 今日から可能な仕事をヒープに追加
for reward in job_by_day[day]:
heapq.heappush(max_heap, -reward) # 最大ヒープのためマイナス
# 今日やるべき最大報酬の仕事を選択
if max_heap:
total += -heapq.heappop(max_heap)
return total
def main() -> None:
"""
標準入力からデータを受け取り、最大収益を出力するメイン関数
"""
input_data = sys.stdin.read().strip().split('\n')
n, d = map(int, input_data[0].split())
jobs: List[Tuple[int, int]] = [tuple(map(int, line.split())) for line in input_data[1:]]
result: int = get_max_earnings(n, d, jobs)
print(result)
if __name__ == "__main__":
main()
提出情報
| 提出日時 | |
|---|---|
| 問題 | B39 - Taro's Job |
| ユーザ | myoshizumi |
| 言語 | Python (CPython 3.11.4) |
| 得点 | 1000 |
| コード長 | 1538 Byte |
| 結果 | AC |
| 実行時間 | 176 ms |
| メモリ | 60012 KiB |
ジャッジ結果
| セット名 | Sample | Subtask1 | All | ||||||
|---|---|---|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 200 / 200 | 800 / 800 | ||||||
| 結果 |
|
|
|
| セット名 | テストケース |
|---|---|
| Sample | sample_01.txt |
| Subtask1 | sample_01.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt |
| All | rand_01.txt, rand_02.txt, rand_03.txt, rand_04.txt, rand_05.txt, rand_06.txt, sample_01.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| rand_01.txt | AC | 131 ms | 46760 KiB |
| rand_02.txt | AC | 89 ms | 33108 KiB |
| rand_03.txt | AC | 94 ms | 34396 KiB |
| rand_04.txt | AC | 61 ms | 24912 KiB |
| rand_05.txt | AC | 64 ms | 26372 KiB |
| rand_06.txt | AC | 176 ms | 60012 KiB |
| sample_01.txt | AC | 19 ms | 10688 KiB |
| subtask1_01.txt | AC | 20 ms | 10976 KiB |
| subtask1_02.txt | AC | 20 ms | 10904 KiB |
| subtask1_03.txt | AC | 20 ms | 11128 KiB |
| subtask1_04.txt | AC | 19 ms | 10844 KiB |
| subtask1_05.txt | AC | 19 ms | 11104 KiB |
| subtask1_06.txt | AC | 19 ms | 10988 KiB |
| subtask1_07.txt | AC | 20 ms | 11204 KiB |
| subtask1_08.txt | AC | 20 ms | 10992 KiB |
| subtask1_09.txt | AC | 21 ms | 11292 KiB |
| subtask1_10.txt | AC | 19 ms | 10880 KiB |