Rubyで解いてみました。
掛かった時間は45分ぐらい。読みづらいコードになってますが勘弁を。
解説は後で書くかも……
#!/usr/bin/ruby
#-*- Coding:UTF-8 -*-
input = gets.chomp.split(",").map{|x| x.split("-") }
square = []
2.times do |i|
t = []
2.times do |j|
t[j] = input[i].map{|x| x[j].to_i}
t[j].unshift(t[j].delete_at(1))
t[j] = [t[j][0,2], t[j][1,2]].map(&:sort).map{|x| [*x[0]..x[1]]}
end
s = []
2.times do |j|
s[j] = t[0][j].product(t[1][j])
end
square[i] = s[0] | s[1]
end
puts (square[0] & square[1]).size