結果
| 問題 |
No.580 旅館の予約計画
|
| ユーザー |
siman
|
| 提出日時 | 2022-03-14 02:33:01 |
| 言語 | Ruby (3.4.1) |
| 結果 |
AC
|
| 実行時間 | 99 ms / 2,000 ms |
| コード長 | 631 bytes |
| コンパイル時間 | 127 ms |
| コンパイル使用メモリ | 7,424 KB |
| 実行使用メモリ | 12,544 KB |
| 最終ジャッジ日時 | 2024-09-19 11:17:39 |
| 合計ジャッジ時間 | 4,724 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 36 |
コンパイルメッセージ
Syntax OK
ソースコード
N, M = gets.split.map(&:to_i)
DAY = 24 * 60
def to_time(str)
h, m = str.split(':').map(&:to_i)
h * 60 + m
end
reserve_list = []
M.times do
d, t1, o, t2 = gets.chomp.split
from = d.to_i * DAY + to_time(t1)
to = o.to_i * DAY + to_time(t2)
reserve_list << [from, to]
end
reserve_list.sort_by! { |f, t| t }
rooms = Array.new(N, -1)
ans = 0
reserve_list.each do |from, to|
best_id = -1
max_time = -Float::INFINITY
N.times do |i|
if rooms[i] < from && max_time < rooms[i]
best_id = i
max_time = rooms[i]
end
end
if best_id != -1
rooms[best_id] = to
ans += 1
end
end
puts ans
siman