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 JAVA (judge verdict: Accepted)

import java.util.Scanner;
public class Main
{
	public static void main(String[] args) 
	{
		int cost[][]=
			{
				{0,300,500,600,700,1350,1650},
				{300,0,350,450,600,1150,1500},
				{500,350,0,250,400,1000,1350},
				{600,450,250,0,250,850,1300},
				{700,600,400,250,0,600,1150},
				{1350,1150,1000,850,600,0,500},
				{1650,1500,1350,1300,1150,500,0}
			};
		int km[][]=
			{
				{0,6,13,18,23,43,58},
				{6,0,7,12,17,37,52},
				{13,7,0,5,10,30,45},
				{18,12,5,0,5,25,40},
				{23,17,10,5,0,20,35},
				{43,37,30,25,20,0,15},
				{58,52,45,40,35,15,0}
			};
		Scanner in=new Scanner(System.in);
		for(;;)
		{
			int s=in.nextInt();
			if(s==0)
				return;
			int sh=in.nextInt(),sm=in.nextInt();
			int t=in.nextInt();
			int th=in.nextInt(),tm=in.nextInt();
			int ans=cost[s-1][t-1];
			int t1=sh*60+sm;
			int t2=th*60+tm;
			if(km[s-1][t-1]<=40&&(17*60+30<=t1&&t1<=19*60+30||17*60+30<=t2&&t2<=19*60+30))
				ans=ans/2+ans/2%50;
			System.out.println(ans);
		}
	}
}