#MO0002. 吞噬变异

吞噬变异

吞噬变异

题目描述

开局一只鲲,进化全靠吞!

游戏中有 n n 种异兽,系统售价为 ai a_i 。游戏中有吞噬系统,吞噬规则的形式为 (x, y) -> z

  • 让一只种类为 x x 的异兽吃掉一只种类为 y y 的异兽,变异出一只种类为 z z 的异兽,而参与吞噬的两只异兽消失;

游戏中有 m m 种不同的吞噬形式,已知每种吞噬规则的 x,y,z x, y, z

在每个回合,你可以进行2种操作:

  1. 花费 ai a_i 购买一只种类为 i i 的异兽;
  2. 按照某种吞噬规则进行一次吞噬变异(需要保证吞噬所需的2只异兽已经准备好);

请你求出得到每种异兽所需要的最小总花费。

输入格式

  • 第一行两个整数 n,m n, m
  • 第二行 n n 个整数 a1,a2,...,an a_1, a_2, ..., a_n 表示初始价格
  • 接下来 m m 行,每行3个整数 x,y,z x, y, z ,代表一个吞噬规则(保证 x,y,z x, y, z 互不相同)

输出格式

  • 输出一行 n n 个整数,代表得到第 i i 只异兽的最小总花费

样例

样例1输入

7 3 6 10 3 2 2 3 100 1 2 7 4 5 1 3 6 2

样例1输出

4 6 3 2 2 3 10

样例2输入

10 5 1 4 5 4 15 14 16 15 19 20 1 3 6 2 6 7 5 8 8 6 8 9 9 9 10

样例2输出

1 4 5 4 15 6 10 15 19 20

数据范围

  • 对于30%的数据,n10 n \leq 10
  • 对于60%的数据,n100 n \leq 100
  • 对于100%的数据,n105,m2×105 n \leq 10^5, m \leq 2 \times 10^5