Школа программиста

Забыли пароль?
[задачи] [курсы] [олимпиады] [регистрация]
Логин:   Пароль:    
Скрыть меню
О школе
Правила
Олимпиады
Фотоальбом
Гостевая
Форум
Архив олимпиад
Архив задач
Состояние системы
Рейтинг
Курсы
Новичкам
Работа в системе
Курсы ККДП
Дистрибутивы
Статьи
Ссылки


 

Тетрис 3D

(Время: 3 сек. Память: 256 Мб Сложность: 58%)

Всем известна игра «Тетрис». Рассмотрим её трёхмерную версию, где в качестве падающих блоков будут выступать прямоугольные параллелепипеды, грани которых параллельны осям координат, а вершины имеют целочисленные координаты. Разумеется, при этом никакие два блока не могут пересекаться, но могут касаться.

Стакан, в который падают блоки, имеет вид прямоугольного параллелепипеда, основание которого имеет размер W×L. При этом один из углов основания находится в начале системы координат, а другой имеет координаты (W, L). Стены стакана параллельны осям координат.

Нам представлен некоторый момент игры, в которой положение N блоков зафиксировано. Известно, что блоки, полностью закрывающие горизонталь ненулевого объема уничтожаются, причем за наименьшее количество уничтоженных при этом блоков игрок получает большее количество очков.

Требуется написать программу, которая позволяет выбрать минимальное число блоков, которые образуют перекрытие по горизонтали, либо определить, что этого сделать невозможно.

Входные данные

В первой строке входного файла INPUT.TXT указаны три целых числа: N – количество блоков (1 ≤ N ≤ 105) и размеры стакана W и L (1 ≤ W, L ≤ 104). Каждая из последующих N строк описывает один блок, определяемый координатами противоположных углов: (x1, y1, z1) и (x2, y2, z2), при этом 0 ≤ x1 < x2 ≤ W, 0 ≤ y1 < y2 ≤ L, 0 ≤ z1 < z2 ≤ 109. Все числа во входном файле целые и разделяются пробелами или переводами строк.

Гарантируется, что блоки не пересекаются друг с другом.

Выходные данные

Первая строка выходного файла OUTPUT.TXT должна содержать либо слово «YES», если искомый набор блоков существует, иначе – слово «NO». В первом случае во второй строке следует вывести минимальное число блоков, образующих перекрытие по горизонтали, а в третьей строке – номера этих блоков согласно порядку, в котором они перечислены во входных данных.

Если возможно несколько минимальных наборов блоков, выведите любой из них.

Примеры

INPUT.TXTOUTPUT.TXT
13 10 10
0 0 6 5 10 7
5 0 5 10 10 8
0 5 1 5 10 6
YES
2
1 2
22 10 10
0 0 6 5 10 7
5 0 5 9 10 8
NO

Система оценки

Решения, работающие верно только в случае, когда все числа во входных данных не превышают 100, будут оцениваться в 40 баллов.


Для отправки решения задачи необходимо зарегистрироваться и авторизоваться!

[Обсуждение] [Все попытки] [Лучшие попытки]


 Язык программирования C++
 Решение олимпиадных задач
 Региональные олимпиады
 Книги Фёдора Меньшикова
 ЕГЭ по информатике
 Тренировочные олимпиады
 Школьный этап
 Муниципальный этап
 Региональный этап
 Полуфинал ВКОШП
 Личное первенство СФУ
 2005 / 2006
 2006 / 2007
 2007 / 2008
 2008 / 2009
 2009 / 2010
 2010 / 2011
 2011 / 2012
 2012 / 2013
 2013 / 2014 7-8 классы
 2013 / 2014 9-11 классы
 2014 / 2015 7-8 классы
 2014 / 2015 9-11 классы
 2015 / 2016 7-8 классы
 2015 / 2016 9-11 классы
 2016 / 2017 7-8 классы
 2016 / 2017 9-11 классы
 2017 / 2018 7-8 классы
 2017 / 2018 9-11 классы
 2018 / 2019 7-8 классы
 2018 / 2019 9-11 классы
 2019 / 2020 7-8 классы
 2019 / 2020 9-11 классы
 2020 / 2021 7-8 классы
 2020 / 2021 9-11 классы
 2021 / 2022 7-8 классы
 2021 / 2022 9-11 классы
 2022 / 2023 7-8 классы
 2022 / 2023 9-11 классы
 2023 / 2024 7-8 классы
 2023 / 2024 9-11 классы
 2024 / 2025 7-8 классы
 2024 / 2025 9-11 классы
 A. Хомяк
 B. Числовая лесенка
 C. Площадь четырёхугольника
 D. N-гиперпрямоугольник
 E. Задачка из ЕГЭ
 F. Тетрис 3D

Красноярский краевой Дворец пионеров, (c)2006 - 2024, ИНН 246305493507, E-mail: admin@acmp.ru