31 lines
No EOL
757 B
Ruby
31 lines
No EOL
757 B
Ruby
require 'pry'
|
|
|
|
arr = Array.new(1000){Array.new(1000){{count: 0, id: nil}}}
|
|
|
|
ids = Array.new
|
|
dups = Array.new
|
|
|
|
File.open("input", "r") do |f|
|
|
f.each_line do |line|
|
|
id = line[/\d+/].to_i
|
|
offset_left, offset_top = line[/\d+,\d+/].split(",").map(&:to_i)
|
|
width, height = line[/\d+x\d+/].split("x").map(&:to_i)
|
|
|
|
ids.push id
|
|
|
|
height.times do |y|
|
|
width.times do |x|
|
|
arr[offset_top + y][offset_left + x][:count] += 1
|
|
if arr[offset_top + y][offset_left + x][:id] != nil
|
|
dups.push arr[offset_top + y][offset_left + x][:id]
|
|
dups.push id
|
|
end
|
|
arr[offset_top + y][offset_left + x][:id] = id
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
puts arr.flatten.select{|a| a[:count] > 1}.count
|
|
|
|
puts (ids - dups.uniq) |