Sunday, December 10, 2017

HACKERRANK Solution Ruby Gridland Metro

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