This code does NOT cover the case where two ranges of tracks in a row do NOT instersect
vars = gets.chomp.split(" ").map(&:to_i)
num_rows = vars[0]
num_cols = vars[1]
num_tracks = vars[2]
tracks_hash = {}
num_tracks.times do |i|
track_set = gets.chomp.split(" ").map(&:to_i)
row = track_set[0]
start = track_set[1]
end = track_set[2]
if tracks_hash[row].nil?
tracks_hash[row] = [start, end]
else
tracks_hash[row][0] = start if (tracks_hash[row][0] > start)
tracks_hash[row][1] =end if (tracks_hash[row][1] < end)
end
end
count = 0
row_tracks.each do |k,v|
num_tracks = (v[0]-v[1]).abs + 1
count += num_tracks
end
puts (num_rows* num_cols) - count
No comments:
Post a Comment