Замок у вигляді міні-гри#4651

Замок у вигляді міні-гри

1 секунда
256 мегабайтів
Складна

У багатьох комп'ютерних іграх відмикання замків реалізовано у вигляді міні-ігор. Полікарп придумав для своєї гри міні-гру з такими правилами:

На екрані показано три невід'ємних числа , та , а також три кнопки з написами "a", "b" та "c".

Замок вважається відкритим, якщо після деякої (можливо, порожньої) послідовності натискань сума a + b + c = 1.

Ваше завдання — визначити мінімальну кількість натискань, необхідних для відкриття замка, або встановити, що це неможливо. Якщо замок можна відкрити, виведіть будь-яку оптимальну послідовність натискань, що це здійснює.

Вхідні дані

У першому рядку записано три невід'ємних числа , , (0 \le a, b, c \le 10^9, 1 \le a + b + c \le 10^9) — початкові числа на екрані.

Вихідні дані

Виведіть одне число — мінімальну кількість натискань, необхідних для відкриття замка. Якщо відкрити замок неможливо, виведіть .

Якщо замок можна відкрити, то виведіть у другому рядку будь-яку оптимальну послідовність натискань — рядок, що складається лише з символів "a", "b", "c", "[", "]" та цифр. Цей рядок має задовольняти таку граматику (початковий символ answer):

\begin{aligned} &\text{character} ::= \text{a} \mid \text{b} \mid \text{c}; \\ &\text{sequence} ::= \text{character} \mid \text{character} \ \text{sequence}; \\ &\text{block} ::= \text{character} \mid \text{number} [\ \text{sequence} \ ]; \\ &\text{answer} ::= \text{block} \mid \text{block} \ \text{answer}; \end{aligned}

Тут number ( number < 10^{10}) — додатне ціле число без початкових нулів.

Зверніть увагу, що правильний рядок відповідно до цієї граматики не повинен містити жодних пробілів.

Рядок виводу повинен кодувати послідовність натискань у оптимальному розв'язку. Блок character відповідає натисканню відповідної кнопки, а блок number [ sequence ] — повторенню цієї послідовності натискань number разів. Дивіться приклади для більшої наочності.

Приклади

Приклад

Вхідні дані
1 0 0
0
Вихідні дані

Приклад

Вхідні дані
1 2 2
2
ab
Вихідні дані

Приклад

Вхідні дані
5 1 5
-1
Вихідні дані

Приклад 1

Loading
Loading

Примітка

У першому прикладі замок вже відкритий, тож натискати кнопки не потрібно.

У другому прикладі послідовність "ab" (натиснути "a", потім "b") відкриває замок.

У третьому прикладі відкрити замок неможливо.