1394: Internet消息发布

内存限制:256 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:75 解决:19

题目描述

设Internet上有N个站点,通常从一个站点发送消息给其他N-1个站点,需依次发送N-1次。这样从一个站点发布消息传遍N个站点时,可能要较长时间。而当一个站点发布消息给另一个站点后,已获得消息的这两个站点就可以 发布消息给另外两个站点,此后就有四个站点可以同时发布消息,这种发布消息方法应该会缩短消息传遍N个站点的时间。
  请您编一个程序,设从每一个站点都可以向其他N-1个站点同时发送消息,编程求出从第一个站点开始发布消息传遍N个站点的最短时间。

输入

    由文件 internet.in 输入数据,文件的第一行是 Internet 上的站点数 N1<=N<=100),第二行起是邻接矩阵严格的下三角部分,各行是整数或字符 XA(I, J)表示从 I 站点发送消息给 J 站点所需要的时间。假设网络是无方向的,故 A(I, J)A(J, I),当 A(I, J)-1 时,表示从站点 I 不能直接向站点 J 发送消息;

 

A(I,I)0 表示没有必要自己给自己送消息(1<=I<=N),严格的下三角阵表示如下: 

 

      A(2, 1)   

 

      A(3, 1), A(3, 2) 

 

      A(4, 1), A(4, 2), A(4, 3) 

 

        

 

      A(N, 1), A(N, 2)……A(N, N-1)   

输出

    输出只有一行,它是一个非负整数,若为 0 表示无解,非 0 表示合符题意的最小整数。 

样例输入 复制

     5                          
     50 
     30      5  
     100    20    50    
     10      -1      -1    10  

样例输出 复制

35