Используете событие change на инпутах https://learn.javascript.ru/events-change
Получаете значение измененного.
Получаете разницу между тем что было и тем что стало.
Разницу распределяете (вычитаете или прибавляете) по оставшимся двум инпутам. Равномерно или не равномерно (это уж как там в ТЗ придумаете). Отдельно продумываете что делать с четностью-нечетностью и делением на 3.
Вот вы открыли сайт на какой-то ширине. Пусть десктопной. Сработала первая часть, которая без ресайза. В консоли пишется desktop. Логично.
Изменили ширину, теперь сработал ресайз и его проверка. При этом первая часть как работала, так и работает.
Значит, в функции, которая показывает десктопное меню должно быть написано, что мобильное надо скрыть и наоборот.