У цьому виклику у мене є поле авокадо, яке я хотів би зробити соком якомога швидше і ціліше. Чи можете ви написати програму чи функцію, яка допоможе мені розібратися, як ідеально випити всі авокадо?
Як вхід, ви отримаєте авокадо в якості mй mквадратної сітки, де mє цілим числом від 3 до 6. Кожного квадрат містить рівно один авокадо. Авокадо має кілька стадій соковитості:
Етап 1: Авокадо взагалі не було соком.
2 етап: авокадо частково соку.
Етап 3: Авокадо було повністю сочене.
Етап 4: авокадо вибухнув через надмірне вживання соку.
Коли ви використовуєте соковижимальний засіб, авокадо в зоні дії цього засобу для переробки соку переходить до наступного етапу. Вибухне авокадо має велику силу і знищить все поле авокадо, тому переконайтесь, що жодне з авокадо не вибухне!
Ось приклад сітки авокадо. У цих прикладах я використовував координату 0,0для нижнього лівого кута, а координату 2,2для верхнього правого кута, хоча ви можете налаштувати систему координат відповідно до вашої мови.
112
221
231
Мета полягає в тому, щоб всі авокадо були ідеально соченими (тобто, етап 3). Для цього у вас є три різні засоби для приготування соків. Кожен засіб для соку має різну область дії, але всі вони збільшують соковитість ураженого авокадо на 1.
Ось усі інструменти, які у вас є в розпорядженні. Ви використовуєте соковижималки, вказуючи першу букву інструменту, а потім координати, які потрібно сокувати. Наприклад, щоб використовувати Slicer на квадраті 5,2, ви отримаєте висновок S 5,2.
Слайсер : соки цільової координати та авокадо з обох боків.
112 112 112
221 --> XXX --> 332
231 231 231
Терка : Соки цільової координати та авокадо вгорі та внизу.
112 1X2 122
221 --> 2X1 --> 231 --> kaboom!
231 2X1 241
Ракетний запуск : соки цільової координати та всіх сусідніх авокадо.
112 1X2 122
221 --> XXX --> 332
221 2X1 231
Зразки входів і виходів
323
212
323
G 1,1
S 1,1
3312
3121
1213
2133
R 0,0
R 1,1
R 2,2
R 3,3
22322
22222
22222
33233
33333
G 0,3
G 1,3
G 2,2
G 3,3
G 4,3
222332
333221
222332
333222
222333
333222
S 1,5
S 1,3
S 1,1
S 4,5
S 4,3
S 4,1
G 5,4