阿强的路
题号:NC229577
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

阿强得到一份地图。这个地图包含n个点m条边的无重边无自环的无向图。每个节点都有一个正权值,每条路径也都含有一个正权值。他希望评估任意两点间的难度是多少。
两点间的难度定义为:所有这两点间的路径中能得到的最小的路径最大点权乘以路径最大边权。

输入描述:

第一行两个整数n,m,分别表示无向图的点数和边数。

第二行n个正整数,第i个正整数表示点i的点权。

接下来m行每行三个正整数u_i,v_i,w_i,分别描述一条边的两个端点和边权。

输出描述:

共n行,每行n个整数,第i行第j个整数表示从i到j的路径的最小权值,如果从i不能到达j,则该值为-1。特别地,当i=j时输出0。

示例1

输入

复制
3 3
2 3 3
1 2 2
2 3 3
1 3 1

输出

复制
0 6 3 
6 0 6 
3 6 0