Unit Conversion I
There are n types of units indexed from 0 to n - 1. You are given a 2D integer array conversions of length n - 1, where conversions[i] = [sourceUnit_i, targetUnit_i, conversionFactor_i]. This indicates that a single unit of type sourceUnit_i is equivalent to conversionFactor_i units of type targetUnit_i.
Return an array baseUnitConversion of length n, where baseUnitConversion[i] is the number of units of type i equivalent to a single unit of type 0. Since the answer may be large, return each baseUnitConversion[i] modulo 10^9 + 7.
Example 1
Input
conversions = [[0,1,2],[1,2,3]]Output
[1,2,6]A single unit of type 0 converts to 2 units of type 1, and then to 6 units of type 2 using the two conversions.
Example 2
Input
conversions = [[0,1,2],[0,2,3],[1,3,4],[1,4,5],[2,5,2],[4,6,3],[5,7,4]]Output
[1,2,3,8,10,6,30,24]Following the unique conversion paths from unit 0 gives conversion values 1, 2, 3, 8, 10, 6, 30, and 24 for units 0 through 7.
Constraints
- 2 <= n <= 10^5
- conversions.length == n - 1
- 0 <= sourceUniti, targetUniti < n
- 1 <= conversionFactori <= 10^9
- It is guaranteed that unit 0 can be converted into any other unit through a unique combination of conversions without using any conversions in the opposite direction.