1查找里程
(10分)
題目內容:
下圖為國內主要城市之間的公路里程:
你的程序要讀入這樣的一張表恳谎,然后,根據輸入的兩個城市的名稱,給出這兩個城市之間的里程加酵。
注意:任何兩個城市之間的里程都已經給出,不需要計算經第三地中轉哭当。
輸入格式:
首先猪腕,你會讀到若干個城市的名字。每個名字都只是一個英文單詞钦勘,中間不含空格或其他符號陋葡。當讀到名字為“###”(三個#號)時,表示城市名字輸入結束彻采,###并不是一個城市的名字腐缤。如果記讀到的城市名字的數量為n捌归。
然后,你會讀到nxn的一個整數矩陣岭粤。第一行的每一個數字惜索,表示上述城市名單中第一個城市依次到另一個城市之間的里程。表中同一個城市之間的里程為0剃浇。
最后巾兆,你會讀到兩個城市的名字。
輸出格式:
輸出這兩個城市之間的距離虎囚。
輸入樣例:
Hagzou Hugzou Jigxng ###
0 1108 708
1108 0 994
708 994 0
Hagzou Jigxng
輸出樣例:
708
時間限制:500ms
內存限制:32000kb
我的答案
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
ArrayList <String> citys = new ArrayList <String>();
Scanner in = new Scanner(System.in);
//讀入城市
while (true) {
String city = in.next();
if (city.equals("###")) {
break;
}
else
{
citys.add(city);
}
}
// 讀入里程表
int cnt = citys.size();
int [][] miles = new int[cnt][cnt];
for (int i=0;i<cnt;i++) {
for (int j=0;j<cnt;j++) {
miles[i][j] = in.nextInt();
}
}
// 返回里程
String c1 = in.next();
String c2 = in.next();
int a = citys.indexOf(c1);
int b = citys.indexOf(c2);
System.out.println(miles[a][b]);
}
}