Правила
[Одномерные массивы]
32. Секретный замок для сейфа состоит из 10 расположенных в ряд ячеек, в которые надо вставить игральные кубики. Но дверь открывается только в том случае, когда в любых трех соседних ячейках сумма точек на передних гранях кубиков равна 10. (Игральный кубик имеет на каждой грани от 1 до 6 точек.) Напишите программу, которая разгадывает код замка при условии, что два кубика уже вставлены в ячейки.
--- --- --- --- --- --- --- Каким оружием могли бы быть разные языки программирования --- --- --- --- --- --- ---
terranum
28 уровень
[0, 0, 0, 0, 0, 0, 0, 5, 0, 6] например здесь возьмем три последние, очевидно что сумма уже не равна 10
значит вставлены не верно, можно добавить еще один цикл для проверки элементов меньше 1, и выкрикивать эксепшн
[0, 0, 0, 0, 0, 0, 0, 5, 0, 6]
[6, 5, -1, 6, 5, -1, 6, 5, -1, 6]
и еще по такому типу
[0, 0, 0, 0, 6, 5, 0, 0, 0, 0]
[-1, 6, 5, -1, 6, 5, -1, 6, 5, -1]
что не есть решение.
Итак немного поднявшись и изменив угол обзора, увидел замыливание в задаче, оказалось, что для решение надо перенести координатную ось до первого кубика, и если эта правая часть решаема то по полученному образцу (паттерну) добрать левую часть массива.
Вот мой вариант, еще есть куда оптимизировать, но это повлечет кучу проверок и еще увеличение кода:
Слыхали ты в гугл устроился, ну как там?)))
после 5 уровня отправил резюме в гугл, и теперь я ведущий спец там)))
«Клиент всегда прав.»
Соглашаемся и уточняем условие, не соглашаемся, значить скачим дальше.
«какие бы три ячейки не взяли сумма была бы 10»
4 + 4 + 4 != 10
…
[5, 6, 0, 0, 0, 0, 0, 0, 0, 0]
[-1, 6, 5, -1, 6, 5, -1, 6, 5, -1]
Подозревается что во все непроходимо вставить.
[0, 4, 0, 0, 6, 0, 0, 0, 0, 0]
[0, 4, 6, 0, 4, 6, 0, 4, 6, 0]
Судя по решениям пора открывать школу хитрых хакеров)))
вставь кубики верно, и все должно заработать
arr = { 6, 0, 0, 0, 0, 0, 0, 5, 0, 0 }
тут уж без вариантов, хотя под условия катит
[6, 2, 2, 1, 1, 1, 1, 5, 1, 1]
Сумма первых трех равна 10.
т.е. какие бы не взяли три подряд идущие ячейки, сумма равна 10
То есть замок уже не открыть? И таких еще куча ситуаций.
да согласен тогда…
любые три, т.е.
такой вывод
[2,4,4,2,4,4,2,4,4,2]