Чем отличается решение тестовых алгоритмических заданий на JS от nodeJS?
Тестовое задание в некоторых компаниях нельзя выполнить на JS, к выполнению доступен лишь nodeJS. Синтаксис фактически один и тот же, но отличается принятие вводных к задаче данных и их вывод. Хочу узнать, как в разных задачах принимаются данные и выводятся. немного знаю про readline, немного знаю про filesystem(при работе именно с файлами). На скриншоте неполная задача с ТЗ, как принимать в код переменные, и как вывести ответ?
Ограничение времени 3 секунды
Ограничение памяти 512 МБ
В самый что ни на есть обычный день Борис решил, что на протяжении следующих дней он будет покупать своей маме букет ровно из трех цветов. Там, где живет Борис, существует всего лишь один магазин цветов, но зато в нем широкий ассортимент: для каждого і от 0 до 10^100 в магазине есть ровно один уникальный цветок, стоящий 2^i бурлей. К тому же в магазин ежедневно довозят цветы, которые были выкуплены.
В і-й день у Бориса есть a(i) бурлей, которые он готов потратить на букет. Борис хочет купить как можно более дорогой букет. Для каждого из n дней определите, за какую стоимость Борис купит букет, или сообщите, что на его деньги невозможно купить никакой букет из трех цветов.
Формат входных данных:
Первая строка содержит число п (1 <= n <= 10^5) - количество дней, в течение которых Борис планирует покупать букеты.
i-я из следующих n строк содержит число а(i) (1 <= a(i) <= 10^18 - количество бурлей, которое есть у Бориса в i-й день.
Формат выходных данных:
Для каждого a(i) в отдельной строке выведите, сколько бурлей Борис потратит на букет в і-й день, или -1, если он не может купить никакой букет ровно из трех цветов.
Комментарий к примеру
- в первый день Борис может купить цветы стоимостей 2^1, 2^2 и 2^3 во
- второй день Борис может купить цветы стоимостей 2^0. 2^1 и 2^6 в
- третий день Борис не может купить цветы таким образом, чтобы составить букет из трех цветов и уложиться в сумму в 5 бурлей.
Примеры данных
Ввод
3
15
67
5
Вывод
14
15
-1
Вот та же задача, но скрином, на всякий случай

Ответы (1 шт):
Поскольку тут файлы не особо почитаешь... Предложу хотя бы алгоритм решения.
const n = 10 ** 100
const a = [15, 67, 5]
a.forEach(s => console.log(test(s)))
//
function test(s){
let m = -1
for (let x = 0; x < n; x++) {
const vx = 2 ** x
if (vx > s) break
for (let y = 0; y < n; y++) {
if (y == x) break
const vy = 2 ** y
if (vx + vy > s) break
for (let z = 0; z < n; z++) {
if (z == x) break
if (z == y) break
const v = vx + vy + 2 ** z
if (v > s) break
// console.log(`2^${x} + 2^${y} + 2^${z} = ${v}`, ' | ', 2**x, 2**y, 2**z)
if (m < v) m = v
}
}
}
return m
}