QOJ.ac

QOJ

Time Limit: 1 s Memory Limit: 512 MB

#22945. Retângulos de ligação

Statistics

São dados vários pontos no plano. Os pontos são numerados consecutivamente a partir de $1$, e cada número é atribuído a exatamente $2$ pontos, que formam um par. Assim, o número total de pontos é necessariamente par. Queremos ligar dois pontos com o mesmo número por um retângulo do qual sejam vértices opostos. Chamamos a esse retângulo um retângulo de ligação. O problema consiste em encontrar vários retângulos de ligação que não se sobreponham e satisfaçam as três condições seguintes.

(Condição 1) Os vértices opostos de um retângulo de ligação têm de ser pontos com o mesmo número. Não se podem ligar por um retângulo pontos com números diferentes.

(Condição 2) Todos os retângulos de ligação têm de estar separados entre si. A situação da figura 1 não é permitida. Também não é permitido que os lados ou vértices de dois retângulos se toquem, como na figura 2, nem que um retângulo esteja contido dentro de outro, como na figura 3.

(Condição 3) A pontuação obtida ao formar um retângulo de ligação é igual ao número atribuído ao seu par de pontos.

Escreva um programa que obtenha a maior pontuação respeitando as condições anteriores.

problem_22945_0d52a965663d84345db19b84e9415a7a.jpg

Entrada

A primeira linha contém o número de pares.

As linhas seguintes contêm as coordenadas dos dois pontos de cada par, pela ordem dos números a partir de $1$.

Existem no máximo $50$ pares ($100$ pontos). Cada coordenada é um inteiro positivo não superior a $100$.

Os dois pontos de um par não pertencem à mesma reta vertical nem à mesma reta horizontal.

Saída

Na primeira linha, imprima o número de pares escolhidos. Na linha seguinte, imprima os números dos retângulos de ligação escolhidos por ordem crescente.

Exemplos

Entrada 1

6
2 5 1 3
5 6 3 2
5 2 6 4
7 6 5 8
1 6 5 4
3 7 7 3

Saída 1

3
1 3 4

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.