1582: Розділити число

Перегляд у форматі PDF

Надіслати розв'язок

Бали: 18
Time limit: 1.0s
Memory limit: 64M

Author:
Problem type

Числовий рядок, є прекрасним, якщо його можна роздiлити на послiдовнiсть з двох чи бiльше натуральних чисел \(a_1, a_2, ..., a_n\), якi вiдповiдають наступним умовам:

  • \(a_i - a_{i−1} = 1\) для будь-якого \(1 < i \le n\) (тобто, кожен елемент у послiдовностi бiльший на 1, нiж попереднiй).

  • \(a_i\) не мiстить провiдних нулiв. (не може бути такого розбиття 02, 03)

  • Послiдовнiсть цифр не можна змiнювати неможливо змiнити.

На схемi нижче зображенi декiлька прекрасних рядкiв:

Ваша програма повинна давати вiдповiдi на запити: чи є прекрасним черговий рядок?

Формат вхiдних даних

Перший рядок мiстить цiле число \(q\) \((1 \le q \le 10)\) - кiлькiсть запитiв.

Наступнi \(q\) рядкiв мiстять один запит - числовий рядок \(S\) \((1 \le |S| \le 32)\), який мiстить лише цифри 0..9

Формат вихiдних даних

Якщо рядок прекрасний, то вивести ’Yes’ та найменше перше число послiдовностi \(a_1\); в iншому випадку вивести ’No’

Приклад вхідних даних

7
1234
91011
99100
101103
010203
13
1

Приклад вихідних даних

YES 1
YES 9
YES 99
NO
NO
NO
NO

Коментарі

Ще немає коментарів.