很久以前,某王国拥有 n 个大城市,为了方便交通,国王下令修建了大量的用于连接首都和其他各大城市高速路。 为节省经费,王国采用了一套优秀的修建方案,使得任何一个大城市都能从首都直接或者通过其他大城市间接到达。并且,如果不重复经过大城市,从首都到达每个大城市的方案都是唯一的。 G商队是王国重要的运输商队,他们奔波于各大城市之间,为王国的人们运输商品,实现长途贸易。所以,从一个城市马不停蹄地到另一个城市成了G商队最常做的事情。他们有一个钱袋,用于存放往来城市间的运输费。 在运输过程中G商队发现,如果不在某个城市停下来休整,在连续行进过程中,他们所花的运输费与他们已走过的距离有关,在走第x千米到第x+1千米这一千米中(x是整数),他们花费的运输费是x+10这么多。也就是说走1千米花费11,走2千米要花费23。 G商队想知道:他们从某一个城市出发,如果中间不休息,到达另一个城市,所有可能花费的运输费中最多是多少呢? 输入: 输入的第一行包含一个整数n,表示包括首都在内的王国的城市数 城市从1开始依次编号,1号城市为首都 接下来n-1行,描述王国的高速路(王国的高速路一定是n-1条) 每行三个整数Pi, Qi, Di,表示城市Pi和城市Qi之间有一条高速路,长度为Di千米。输入城市数(〈10),长度(〈=100) 输出: 输出一个整数,表示G商队最多花费的运输费是多少 样例输入: 5 1 2 2 1 3 1 2 4 5 2 5 4 样例输出: 135
public class Wangguo{
public static void main(String[] args)
{
int result=0;
int a[][] = new int[6][6];
int b[][] = new int[6][6];
a[1][2] = 2;
a[1][3] = 1;
a[2][4] = 5;
a[2][5] = 4;
a[2][1] =2;
a[3][1] =1;
a[4][2] =5;
a[5][2] =4;
for(int k=1;k<6;k++)
{
for(int i=1;i<6;i++)
{
for(int j=1;j<6;j++)
{
if(i!=j && a[i][k]>0 && a[k][j]>0)
b[i][j] = a[i][k]+a[k][j];
}
}
}
for(int i=1;i<6;i++)
for(int j=1;j<6;j++)
{
if(b[i][j]>result)
result = b[i][j];
}
System.out.println(result);
}
}