时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
            空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
             64bit IO Format: %lld
        
     
    题目描述
        
        
    
            
              牛牛和牛妹在进行一场星球模拟游戏,游戏规则如下: 
   游戏地图内共有n个星球,共有m条隧道连接这些星球。每条隧道都是双向的,每两个星球间不一定只有一条隧道。现在牛牛占领了这n个星球中的p个星球,牛妹占领了这n个星球中的q的星球(每个星球最多只能被一个人占领)。现在牛牛想知道他占领的p个星球中任意一个星球,到牛妹占领的q个星球中任意一个星球,这两个星球的最短距离是多少。 
   
 
                        
                            示例1
                        
                        
                            
                                输入
                                复制
                                
                                
                                    [1],[3,4],[[1,2,7],[2,3,6],[3,4,2],[1,3,11],[2,4,3]],4
                                 
                             
                            
                                                            
                                    说明
                                    
                                        距离最近的牛牛星和牛妹星是1和4,他们之间的距离为10
 
                                     
                                 
                                                     
                     
                                    
                                                        备注:
                对于50%的数据:
对于100%的数据:
  相关参数意义如下
  serialP 牛牛占领的p个星球的编号
  serialQ 牛妹占领的q个星球的编号
  path  m条隧道,每条隧道有三个数分别是ui,vi,wi。ui,vi分别是隧道的两边星球的编号,wi是它们之间的距离
  nn int整型 星球个数n