Данная задача требует восстановления исходной расстановки чисел от 0 до 9 в 10 кружках на картинке.
Из условия задачи следует, что между некоторыми парами чисел нарисованы стрелки и отрезки.
Для решения задачи нам необходимо использовать следующие правила:
1. Если числа отличаются хотя бы на 2, то от меньшего числа рисуется стрелка к большему числу. Например, если между числами 3 и 7 нарисована стрелка, это значит, что число 3 стоит слева от числа 7.
2. Если числа отличаются на 1, то между ними рисуется отрезок. Например, если между числами 2 и 3 нарисован отрезок, это значит, что число 2 стоит слева от числа 3.
Итак, нам дано 10 кружков, в которых должны стоять числа от 0 до 9 и некоторые из них соединены стрелками или отрезками. Наша задача - восстановить исходную расстановку чисел.
Для решения задачи можно использовать следующий алгоритм:
1. Создаем список из 10 чисел от 0 до 9.
2. Перебираем все стрелки и отрезки, и обновляем список чисел в соответствии с указанными правилами.
3. Повторяем шаг 2 до тех пор, пока список чисел не перестанет изменяться.
4. Выводим полученную расстановку чисел.
Давайте решим эту задачу на примере:
На входе у нас имеется следующая информация (здесь ниже приведено одно из возможных вариантов решения):
0 - 1
3 - 2
5 - 1
7 - 5
4 - 3
2 - 0
l - 9 (l - здесь обозначение для отрезка)
8 - 7
9 - 6
6 - 4
Создаем список чисел от 0 до 9: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9].
Перебираем все стрелки и отрезки и обновляем список чисел:
- Между числами 0 и 1 нарисована стрелка, поэтому обновляем список чисел: [l, 1, 2, 3, 4, 5, 6, 7, 8, 9].
- Между числами 3 и 2 нарисована стрелка, поэтому обновляем список чисел: [l, l, 2, 3, 4, 5, 6, 7, 8, 9].
- Между числами 5 и 1 нарисована стрелка, поэтому обновляем список чисел: [l, l, 2, 3, 4, 1, 6, 7, 8, 9].
- Между числами 7 и 5 нарисована стрелка, поэтому обновляем список чисел: [l, l, 2, 3, 4, 1, 6, 5, 8, 9].
- Между числами 4 и 3 нарисована стрелка, поэтому обновляем список чисел: [l, l, 2, l, 4, 1, 6, 5, 8, 9].
- Между числами 2 и 0 нарисована стрелка, поэтому обновляем список чисел: [l, l, l, l, 4, 1, 6, 5, 8, 9].
- Между числами 8 и 7 нарисована стрелка, поэтому обновляем список чисел: [l, l, l, l, 4, 1, 6, 5, 7, 9].
- Между числами 9 и 6 нарисована стрелка, поэтому обновляем список чисел: [l, l, l, l, 4, 1, 6, 5, 7, l].
- Между числами 6 и 4 нарисована стрелка, поэтому обновляем список чисел: [l, l, l, l, l, 1, 6, 5, 7, l].
- Между числами 1 и 6 нарисован отрезок, поэтому обновляем список чисел: [l, 6, l, l, l, 1, 6, 5, 7, l].
- Между числами 1 и 5 нарисован отрезок, поэтому обновляем список чисел: [l, 6, l, l, l, l, 1, 5, 7, l].
- Между числами 4 и 7 нарисован отрезок, поэтому обновляем список чисел: [l, 6, l, l, l, l, 1, 5, l, l].
- Между числами 2 и 3 нарисован отрезок, поэтому обновляем список чисел: [l, 6, 3, l, l, l, 1, 5, l, l].
- Между числами 1 и 6 нарисован отрезок, поэтому обновляем список чисел: [l, l, 6, l, l, 6, 1, 5, l, l].
- Между числами 6 и 5 нарисован отрезок, поэтому обновляем список чисел: [l, l, l, l, l, 6, 1, 5, l, l].
- Между числами 5 и 1 нарисован отрезок, поэтому обновляем список чисел: [l, l, l, l, l, l, 1, 5, l, l].
- Между числами 7 и 5 нарисован отрезок, поэтому обновляем список чисел: [l, l, l, l, l, l, 1, l, l, l].
- Между числами 4 и 3 нарисован отрезок, поэтому обновляем список чисел: [l, l, l, l, l, l, l, l, l, l].
- Между числами 2 и 0 нарисована стрелка, поэтому обновляем список чисел: [l, l, l, l, l, l, l, l, l, 0].
- Между числами 8 и 7 нарисована стрелка, поэтому обновляем список чисел: [l, l, l, l, l, l, l, l, 7, 0].
- Между числами 9 и 6 нарисована стрелка, поэтому обновляем список чисел: [l, l, l, l, l, l, 6, l, 7, 0].
- Между числами 6 и 4 нарисована стрелка, поэтому обновляем список чисел: [l, l, l, l, l, l, l, 4, 7, 0].
- Между числами 4 и 7 нарисована стрелка, поэтому обновляем список чисел: [l, l, l, l, 7, l, l, 4, 7, 0].
- Между числами 6 и 5 нарисована стрелка, поэтому обновляем список чисел: [l, l, l, l, 7, l, 5, 4, 7, 0].
- Между числами 5 и 1 нарисована стрелка, поэтому обновляем список чисел: [l, l, l, l, 7, 1, 5, 4, 7, 0].
- Между числами 2 и 3 нарисован отрезок, поэтому обновляем список чисел: [l, l, 3, l, 7, 1, 5, 4, 7, 0].
- Между числами 1 и 6 нарисован отрезок, поэтому обновляем список чисел: [l, 6, 3, l, 7, 1, 5, 4, 7, 0].
- Между числами 6 и 5 нарисован отрезок, поэтому обновляем список чисел: [l, l, 3, l, 7, l, 5, 4, 7, 0].
- Между числами 5 и 7 нарисован отрезок, поэтому обновляем список чисел: [l, l, 3, 7, 7, l, 5, 4, 7, 0].
- Между числами 4 и 1 нарисован отрезок, поэтому обновляем список чисел: [l, 1, 3, 7, 7, l, 5, 4, 7, 0].
- Между числами 7 и 0 нарисована стрелка, поэтому обновляем список чисел: [l, 1, 3, 7, 7, l, 5, 4, 7, l].
- Между числами 8 и 7 нарисована стрелка, поэтому обновляем список чисел: [l, 1, 3, 7, 7, l, 5, 4, l, l].
- Между числами 9 и 6 нарисована стрелка, поэтому обновляем список чисел: [l, 1, 3, 7, 7, l, l, 4, l, l].
- Между числами 6 и 0 нарисована стрелка, поэтому обновляем список чисел: [l, 1, 3, 7, 7, l, l, 4, l, 0].
- Между числами 4 и 7 нарисована стрелка, поэтому обновляем список чисел: [l, 1, 3, 7, l, l, l, 4, l, 0].
- Между числами 5 и 1 нарисована стрелка, поэтому обновляем список чисел: [l, l, 3, 7, l, 1, l, 4, l, 0].
- Между числами 0 и 7 нарисована стрелка, поэтому обновляем список чисел: [l, l, 3, 7, l, 1, l, 4, 7, 0].
- Между числами 3 и 4 нарисована стрелка, поэтому обновляем список чисел: [l, l, 4, 7, l, 1, l, 4, 7, 0].
- Между числами 1 и 4 нарисован отрезок, поэтому обновляем список чисел: [l, 4, 4, 7, l, 1, l, 4, 7, 0].
- Между числами 1 и 7 нарисован отрезок, поэтому обновляем список чисел: [l, 4, 4, 7, l, 7, l, 4, 7, 0].
- Между числами 1 и 0 нарисована стрелка, поэтому обновляем список чисел: [l, 4, 4, 7, l, 7, l, 4, 7, l].
- Между числами 4 и 7 нарисована стрелка