 Задача Каменоломни
(STONES)
Задача Каменоломни
(STONES)
В
стране Qwerty все постройки строятся исключительно из камня. Для каждой
строительной фирмы камень добывается в собственной каменоломне и обработка
может производиться  на одной из фабрик,
количество которых совпадает с количеством каменоломен. К этим объектам ведет
единственная прямая дорога по краю скалы, по одной стороне от которой находится
обрыв, а по другой указанные объекты. Владельцы строительных фирм столкнулись с
множеством транспортных проблем (заторы и пробки) на единственной дороге и
решили построить альтернативные дороги для доставки камня на
фабрики. Поскольку стоимость доставки и обработки одинакова для всех фабрик и
не зависит от расстояния, то чтобы не допустить пробок в будущем, владельцы
решили строить дороги непересекающимися между собой и с основной дорогой.
Ваша задача написать программу, которая по заданному
расположению  каменоломен и
 каменоломен и  фабрик предложит один из вариантов прокладки
непересекающихся дорог.
 фабрик предложит один из вариантов прокладки
непересекающихся дорог.
Формат ввода/вывода:
Напишите программу STONES, которая читает входные данные
из файла STONES.DAT и записывает результат в файл STONES.SOL.
Файл STONES.DAT содержит целое число  и последовательность из
 и последовательность из  нулей и единиц разделенных пробелами, которая
описывает расположение каменоломен и камнеобрабатывающих фабрик относительно
дороги слева направо (см. рисунок):
 нулей и единиц разделенных пробелами, которая
описывает расположение каменоломен и камнеобрабатывающих фабрик относительно
дороги слева направо (см. рисунок):  – каменоломня,
 – каменоломня,  – фабрика.
 – фабрика.
Если построение невозможно, то
файл STONES.SOL должен содержать слово “NO” (без кавычек). В противном
случае файл STONES.SOL должен содержать  пар целых чисел, разделенных пробелом. Каждая
пара чисел – это номер каменоломни и номер фабрики, которые должны быть
соединены дорогой. Каменоломни
нумеруются целыми
числами от
 пар целых чисел, разделенных пробелом. Каждая
пара чисел – это номер каменоломни и номер фабрики, которые должны быть
соединены дорогой. Каменоломни
нумеруются целыми
числами от  до
 до  слева направо. Фабрики нумеруются таким же образом. Если существует
несколько вариантов решения, выведите любой из них.
 слева направо. Фабрики нумеруются таким же образом. Если существует
несколько вариантов решения, выведите любой из них.
Ограничения:  .
.
 
Пример: (см. рисунок)
 
 
  | STONES.DAT: 3 0 1 0 0 1 1 | STONES.SOL: 2 1 1 3 3 2 |