pairs[i] = [a, b] и ratios[i] означают, что a / b = ratios[i]. Имя переменной — короткая строка.
Также дан список вопросов asks: asks[j] = [c, d] спрашивает, чему равно c / d.
Верните список ответов в порядке вопросов. Если ответ нельзя вывести из известных отношений, на его месте должно стоять -1.0. Переменная, которой нет ни в одном отношении, считается неизвестной — для неё не определено даже отношение к самой себе.
Данные непротиворечивы, и делить на ноль не придётся. Ответы сверяются с точностью до 10⁻⁶.pairs=[["usd", "eur"], ["eur", "gbp"]], ratios=[1.25, 1.2], asks=[["usd", "gbp"], ["gbp", "eur"], ["usd", "yen"]] → [1.5, 0.8333333333333334, -1]
usd / gbp = (usd / eur) · (eur / gbp) = 1.25 · 1.2 = 1.5; gbp / eur = 1 / 1.2 ≈ 0.8333; про yen ничего не известно — -1.0.
pairs=[["a", "b"], ["c", "d"]], ratios=[4.0, 0.5], asks=[["a", "c"], ["d", "c"], ["b", "b"], ["z", "z"]] → [-1, 2.0, 1.0, -1]
a и c не связаны ни одной цепочкой — -1.0. d / c = 2.0. b / b = 1.0, ведь b встречается в данных. А z не встречается нигде, поэтому даже z / z не определено.
pairs=[["usd", "eur"], ["eur", "gbp"]], ratios=[1.25, 1.2], asks=[["usd", "gbp"], ["gbp", "eur"], ["usd", "yen"]]
[1.5, 0.8333333333333334, -1]
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 37 тестов на сервере, включая скрытые.