2012-04-23 3 views
-1

Есть вызов от CodeEval, называемый Grid Walk.CodeEval challenge: Grid Walk

Язык программирования на самом деле не имеет значения.

Я попытался взломать его, и я думал, что это так, поскольку ответы, которые моя программа дала мне на меньшие номера (9 и 10), были правильными в соответствии с бумажным рисунком.

Как моя программа говорит, конечный результат должен быть 111005, но CodeEval, похоже, не согласен с этим.

Может ли кто-нибудь указать мне в правильном направлении? Каков правильный ответ? Намек?

The challenge:

Существует обезьяна, которая может ходить на плоской сетке. Обезьяна может перемещать одно пространство за раз влево, вправо, вверх или вниз. То есть от (x, y) обезьяна может перейти к (x + 1, y), (x-1, y), (x, y + 1) и (x, y-1). Точки, где сумма цифр абсолютного значения координаты x плюс сумма цифр абсолютного значения координаты y меньше или равна 19, доступны для обезьяны . Например, точка (59, 79) недоступна, потому что 5 + 9 + 7 + 9 = 30, что больше 19. Другой пример: точка (-5, -7) доступна, поскольку abs (-5) + abs (-7) = 5 + 7 = 12, что меньше 19. Сколько очков может получить обезьяна, если она начинается с (0, 0), включая (0, 0)?

И картина, где моя программа думает, что обезьяна может ходить (зеленые зоны), происходит от -298 до 298 в обоих X и оси Y (0,0) является центром.

NotSolution

UPDATE:

У меня есть решение сейчас. Как я строил точки через ось, я потребовал, чтобы предыдущий у или предыдущие х были хорошие, так что это заставило меня потерять все дополнительные недостижимые места, оставив меня с этим, нужное количество: 102485

Solution

+0

Возможно, ваша программа вычисляет все действительные точки, но вызов запрашивает все доступные точки. Возможно, что многие действительные точки недоступны (т. Е. Они могут находиться за точкой, которая недоступна, и нет другого способа добраться туда, например, диагональные движения). –

+0

Спасибо за комментарий, но моя программа рассчитывает только доступные точки. Вы можете увидеть обновление для изображения того, что моя программа считает приемлемой зоной. – SimpleVar

+0

Зеленые доступные точки? В этом случае есть много доступных точек, которые не посещаются обезьяной при запуске с (0, 0). Вы исключили их из своего последнего счета? –

ответ

0

Выполните наводнение из (0,0) по найденной вами форме, и вы получите все точки, доступные из (0,0).

+0

Не могли бы вы уточнить? Я могу представить, что это такое, но что было бы лучшим способом сделать это? Кроме того, картина была просто для иллюстрации ситуации для меня и вас, ребята. Надеюсь, я смогу игнорировать недостижимые области, проходя через ось. (Я думаю, что у меня есть решение в руке. Я его тестирую) – SimpleVar

+0

Вы были в правильном направлении и единственный ответчик, поэтому вы получили кредит;) Спасибо за ответ. – SimpleVar

+0

@YoryeNathan Ха-ха, вы все сделали правильно, просто нужно включить тот факт, что обезьяне нужно уметь ходить на каждый квадрат. –

Смежные вопросы