Нас интересуют такие тройки (А,В,С) - (возраст математика, номер автобуса, количество детей), что есть для неё есть несколько вариантов для возрастов детей. Заметим, что вариант для тройки (А,В,С) при добавлении годовалого ребёнка превращается в вариант для тройки (A, B+1, C+1). Например, [3,2,2,2] - вариант для тройки (24,11,4), а [3,2,2,2,1,1,1] - для тройки (24, 11+3=14, 4+3=7). Поэтому мы будем отслеживать пары (A, B-C), которые не зависят от годовалых детей.
Ниже график всех возможных пар (A, B-C) с В, не превышающим заданный на слайдере. По вертикальной оси - возраст математика (предполагаем, что он не может превышать 300), по горизонтальной - разность B-C между номером автобуса и количеством детей. Точка отмечена серым, если существует только один вариант (без годовалых детей), дающий данную пару, красным - если два таких варианта, и зелёным - если больше двух. Если навести на точку, то можно увидеть все варианты, сгруппированные по номеру автобуса, дающие эту пару.
Итак, тройке (A,B,C) соответствует несколько вариантов, если в точке (A,B-C) есть хотя бы два варианта с номером автобуса, не превышающим В. Значит, правильной является одна из этих троек ("Возможно, если ты скажешь мне свой возраст и число твоих детей, я смогу вычислить их возрасты? Нет, не сможешь."). Однако все эти тройки (если их несколько) должны находиться на одной горизонтали ("Наконец-то я узнал твой возраст.").
Первая подходящая точка появляется на графике при B≤12, с вариантами [4,4,3] и [6,2,2,2]. То есть при B=12 единственная подходящая тройка - (48,12,4) с вариантами [4,4,3,1] и [6,2,2,2]. При этом она единственна, так что B=12 подходит.
При B=13 появляется вторая точка c вариантами [6,6] и [9,2,2]. Ей соответствует тройка (36,13,3), а найденная нами тройка (48,12,4) превращается в (48,13,5). И далее при всех B≥13 найдутся хотя бы две подходящие тройки с А, равным 48 и 36 соответственно. Значит, B=12 - единственное решение.