Problem:
有料道路通行料

20XX年に喜多方市熱塩加納町から南会津町までの6区間、総距離58kmの会津中央道路が完成し開通する予定です。

開通後、半年間は利用促進のため17時30分〜19時30分までに出発ICか到着ICを通過し、なおかつ走行距離が40km以下の車に対する通行料金は半額になります。ただし料金は50円単位とし、端数は切り上げます。下記の表は料金と距離の一覧表です。

例えば喜多方（２）から会津若松（４）までは料金が450円、距離が12kmとなります。半額時間帯であれば250円になります。

出発IC、出発IC通過時刻、到着IC、到着IC通過時刻を入力とし、料金を計算して出力するプログラムを作成してください。ただし、入力される時刻は24 時間表記の値とします。なお、17時30分および19時30分ちょうどに通過した場合も半額時間帯に含めます。

Input

複数のデータセットの並びが入力として与えられます。入力の終わりはゼロひとつの行で示されます。
各データセットは以下の形式で与えられます。

d
hd md
a
ha ma

１行目に出発ICの番号 d (1 ≤ d ≤ 7)、２行目に出発ICの通過時刻の時間 hd (0 ≤ hd ≤ 23) と分 md (0 ≤ md ≤ 59) が与えられます。

3行目に到着ICの番号 a (1 ≤ a ≤ 7)、４行目に到着ICの通過時刻の時間 ha (0 ≤ ha ≤ 23) と分 ma (0 ≤ ma ≤ 59) が与えられます。

Output

データセットごとに通行料金（整数）を１行に出力します。

Sample Input

2
17 25
4
17 45
4
17 25
7
19 35
0

Output for the Sample Input

250
1300

Solution in Ruby (judge verdict: Accepted)

def half(toll)
  toll /= 2
  div, mod = toll.divmod(100)
  if(mod > 0 and mod < 50)
    toll = (div * 100) + 50
  elsif(mod > 50 and mod <= 99)
    toll = (div + 1) * 100
  end

  return toll
end

toll_dist = Array.new(8).map{[]}
toll_dist[1][2] = [300, 6]; toll_dist[1][3] = [500, 13]; toll_dist[1][4] = [600, 18]; toll_dist[1][5] = [700, 23]; toll_dist[1][6] = [1350, 43]; toll_dist[1][7] = [1650, 58]
toll_dist[2][3] = [350, 7]; toll_dist[2][4] = [450, 12]; toll_dist[2][5] = [600, 17]; toll_dist[2][6] = [1150, 37]; toll_dist[2][7] = [1500, 52]
toll_dist[3][4] = [250, 5]; toll_dist[3][5] = [400, 10]; toll_dist[3][6] = [1000, 30]; toll_dist[3][7] = [1350, 45];
toll_dist[4][5] = [250, 5]; toll_dist[4][6] = [850, 25]; toll_dist[4][7] = [1300, 40]
toll_dist[5][6] = [600, 20]; toll_dist[5][7] = [1150, 35]
toll_dist[6][7] = [500, 15]

loop do
  start_ic = gets.to_i
  break if start_ic == 0
  start_time = gets.split.join.to_i
  goal_ic = gets.to_i
  goal_time = gets.split.join.to_i

  if(start_ic > goal_ic)
    start_ic, goal_ic = goal_ic, start_ic
  end

  toll = toll_dist[start_ic][goal_ic][0]
  dist = toll_dist[start_ic][goal_ic][1]

  if(start_time.between?(1730, 1930) or goal_time.between?(1730, 1930)) and (dist <= 40)
    toll = half(toll)
  end

  puts toll
end