Олимпиадный тренинг

Задача . Съезд кинозвёзд


Задача

Темы:

На съезд лауреатов конкурсов Киноакадемии приглашены \(n\) кинозвёзд, которые очень трепетно относятся к различным слухам о себе. Необходимо, чтобы среди \(\frac{n(n-1)}{2}\) возможных пар кинозвёзд оказалось ровно \(a\) пар, в которых обе кинозвезды ни в какой момент времени не будут присутствовать в зале съезда вместе, и ровно \(b\) пар, в которых одна из кинозвёзд будет присутствовать в зале только вместе с другой: войдет в зал позже нее, а выйдет раньше.

Чтобы обеспечить эти условия, на входе в зал поставили швейцара. В каждый момент времени он либо впускает одного человека в зал, либо выпускает одного человека из зала. Кинозвёздам, покинувшим зал, запрещено вновь туда возвращаться.

Требуется для каждого из \(q\) заданных съездов по \(n\), \(a\) и \(b\) определить подходящую последовательность входа и выхода кинозвёзд в зал.

Формат входных данных
Первая строка входного файла содержит целое число \(q\) — количество съездов. Каждая из последующих \(q\) строк содержит описание съезда: три целых числа \(n\), \(a\) и \(b\).

Формат выходных данных
Выходной файл должен содержать \(q\) строк — по одной на каждый съезд. Каждая строка должна содержать число \(n\), после которого следуют \(2n\) целых чисел, описывающих порядок входа и выхода кинозвёзд в зал. Каждое число в диапазоне от \(1\) до \(n\) должно встречаться дважды: в первый раз число \(i\) обозначает вход \(i\)-й кинозвёзды в зал, во второй раз — её выход.

Гарантируется, что для каждого из заданных съездов существует хотя бы одно решение. Если существует несколько решений, можно вывести любое из них.

Если решение для конкретного съезда вами не найдено, в соответствующей строке необходимо вывести единственное число \(0\).

Требуется решить задачу для 7 тестов, которые находятся на вашем компьютере в каталоге <<c:work6-tests>> в файлах с именами 01, 02, 03, 04, 05, 06 и 07. На проверку требуется сдавать только файлы с ответами. Сдавать программу не требуется.

За каждый тест, ответ на который отправляется в проверяющую систему, начисляется \(k\) баллов, где \(k\) — число съездов, для которых было найдено правильное решение.

Если присланный файл не соответствует требованиям к формату выходных данных, то он не будет принят на окончательную проверку с сообщением <<PE 1>>.

В течение тура можно не более 10 раз по каждому тесту запросить информацию о результатах оценивания ответа. Запрос по каждому тесту можно делать не чаще одного раза в 5 минут. В качестве результата проверки сообщается количество полученных баллов и комментарий проверяющей программы, который содержит информацию о правильности решений для съездов в порядке их перечисления во входном файле в следующем формате:

  • <<+>> — решение правильное, за него начислен 1 балл;

  • <<->> — решение неправильное;

  • <<0>> — присланный файл содержит 0 для этого съезда.

 

В приведённом в примере ответе на тест, решение для второго съезда не найдено, а решение для четвертого теста неправильное. Если бы это был один из тестов жюри, такой ответ был бы оценен в 2 балла из 4.


time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
Комментарий учителя