Ограничения: время – 1s/2s, память – 32MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод
Послать решение Blockly Посылки Темы Где Обсудить (0)
Для крупной строительной фирмы была написана
программа "TILE", которая выдавала варианты замощения пола
прямоугольных комнат декоративной плиткой разного размера.
Напишите программу, которая проверяет результаты работы
разработанной программы "TILE", выясняя для каждого выданного
ей варианта наличие ошибок замощения пола:
- плитки накладываются друг на друга;
- плитки лежат вне комнаты;
- плитки не полностью покрывают пол комнаты.
Входной файл с результатами работы тестируемой программы
содержит несколько комнат. Первая строка задает число комнат.
Каждая комната описывается несколькими строчками входного файла.
Первая строка содержит два положительных целых числа: длину и ширину
комнаты в миллиметрах. Максимальные размеры комнаты `40\ 000` на `40\ 000` мм.
Следующая строка содержит единственное число `t` – количество плиток,
используемых для замощения (`1\ ≤\ t\ ≤\ 100`). Следующие `t` строк
описывают каждую плитку. Размещение плитки задается 4 целыми
числами: `x_1\ y_1\ x_2\ y_2`, где `(x_1,y_1)` координаты нижнего
левого угла плитки, `(x_2,y_2)` координаты верхнего правого угла
плитки (`-100\ 000\ ≤\ x_1\ <\ x_2\ ≤100\ 000,\ -100\ 000\ ≤\ y_1\ <\ y_2\ ≤\ 100\ 000`).
Выходной файл для каждой комнаты должен содержать
единственную строку, содержащую одно из следующих слов:
NONDISJOINT | если встречаются перекрывающиеся плитки; |
NONCONTAINED | если нет перекрывающихся плиток, но некоторые плитки выходят за пределы комнаты; |
NONCOVERING | если нет перекрывающихся плиток и нет плиток, выходящих за пределы комнаты, но некоторая часть комнаты не покрыта; |
OK | если ошибок в замощении нет. |
Пример ввода
4
4 3
2
0 0 2 2
1 1 5 5
4 3
2
0 0 2 2
-2 2 5 5
4 3
2
0 0 2 2
2 0 4 2
4 3
3
0 0 2 2
2 0 4 2
0 2 4 3
Пример вывода
NONDISJOINT
NONCONTAINED
NONCOVERING
OK
Источник: ACM ICPC NWERC 2002