Блог пользователя mondayguy

Автор mondayguy, история, 6 месяцев назад, По-русски

Помогите, пожалуйста, с задачкой из онлайн ассесмента Яндекса(мероприятие Yandex Weekly offer уже закончилось).

Даны числа n и m, нужно вернуть количество палиндромов в цифровых часах вида 23:23, если бы в сутках было не 24 часа и 60 минут, а n часов и m минут. Причем числа n и m огромные и заданы в виде строки длиной до 10^5.

Пример для n = 12, m = 1234 : 0000:0000, 0001:1000, 0001:1000, 0010:0100, 0010:0100, 0011:1100, 0011:1100.

Выводим 4(надо выводить по модулю 10^9+7)

Другой пример:

Ввод 24 60

Вывод 16

  • Проголосовать: нравится
  • +4
  • Проголосовать: не нравится

»
6 месяцев назад, # |
  Проголосовать: нравится +8 Проголосовать: не нравится

print(rand(0, 1000000006))

  • »
    »
    6 месяцев назад, # ^ |
      Проголосовать: нравится +2 Проголосовать: не нравится

    Я умею решать все задачи. Правда алгоритм рандомизированный.

»
6 месяцев назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

It seems like some digit dp type of concept will help solveing it

»
6 месяцев назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

n и m не важны как числа, т.к. вклад вносят отдельные цифры. Поэтому сравниваем i-ю цифру слева n с i-й справа m, с учётом того есть ли "продолжение" числа (1234 включает 0999)