QOJ.ac

QOJ

時間限制: 4.0 s 記憶體限制: 2048 MB 總分: 100

#17329. Jardin d'enfants revisité

统计

À la maternelle, l'une des activités les plus chronophages consistait à découper des formes dans une feuille de papier avec des ciseaux à bouts ronds. Considérons un modèle simplifié de cette tâche : vous commencez avec une feuille de papier infiniment grande sur laquelle sont dessinés $N$ rectangles disjoints alignés avec les axes, et les coupes sont des lignes droites infiniment longues. Une coupe ne doit pas « entamer » un rectangle : elle ne doit passer par aucun point situé strictement à l'intérieur d'un rectangle. (Les coupes qui passent exactement le long d'un bord de rectangle ou par un coin de rectangle sont autorisées.) Lorsque vous coupez un morceau de papier, celui-ci se sépare en deux morceaux distincts que vous continuez à couper indépendamment l'un de l'autre (les coupes futures sur un morceau n'affectent pas les autres morceaux).

Votre objectif est d'effectuer une séquence de coupes de sorte que chaque rectangle se retrouve sur son propre morceau de papier (car, une fois cette étape accomplie, il est assez facile de découper chaque rectangle précisément).

Déterminez le nombre minimum de coupes (pas nécessairement alignées avec les axes) nécessaires pour isoler les rectangles de cette manière. Si la tâche est impossible, affichez impossible.

Entrée

La première ligne de l'entrée contient un entier $N$ ($1 \le N \le 100$), le nombre de rectangles.

Chacune des $N$ lignes suivantes décrit un rectangle. Chaque ligne contient quatre entiers séparés par des espaces $x_1, y_1, x_2$ et $y_2$ ($|x_1|, |y_1|, |x_2|, |y_2| \le 10^9$, $x_1 < x_2$, $y_1 < y_2$), où $(x_1, y_1)$ est le coin inférieur gauche du rectangle et $(x_2, y_2)$ est le coin supérieur droit du rectangle.

Il est garanti que les rectangles sont disjoints : aucun rectangle ne s'intersecte en un point commun, y compris sur leurs bords ou leurs coins.

Sortie

Affichez le nombre minimum de coupes nécessaires pour séparer tous les rectangles. (N'incluez pas les coupes supplémentaires qui seraient nécessaires pour rogner le papier vierge autour des marges des rectangles une fois séparés.) Si cette tâche est impossible, affichez impossible.

Remarque

Les deux premières coupes d'une séquence possible permettant de séparer les rectangles sont illustrées ci-dessous. La première coupe est tracée en rouge et la seconde en bleu. Notez que la coupe bleue n'est pas valide avant la coupe rouge, car elle aurait entamé le rectangle situé sur le côté droit.

Exemples

Entrée 1

6
-1 1 0 4
1 0 3 1
2 2 3 3
4 0 5 3
2 4 5 5
6 3 7 5

Sortie 1

5

Entrée 2

4
0 -1 1 2
2 -1 5 0
-10 3 3 4
4 1 5 13

Sortie 2

impossible

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.