QOJ.ac

QOJ

Time Limit: 1 s Memory Limit: 512 MB

#22945. 接続長方形

Statistics

平面上にいくつかの点が与えられる。点には $1$ から順に番号が付けられ、各番号の点はちょうど $2$ 個ずつあり、対をなしている。したがって、点の総数は必ず偶数である。同じ番号の 2 点を対角の頂点とする長方形で結ぶことを考える。この長方形を接続長方形と呼ぶ。次の 3 条件を満たす、互いに重ならない複数の接続長方形を見つけることが問題である。

(条件 1)接続長方形の対角の頂点は、必ず同じ番号の点でなければならない。異なる番号の点を長方形で結んではならない。

(条件 2)各接続長方形は必ず互いに離れていなければならない。図 1 のような場合は認められない。図 2 のように 2 つの接続長方形の辺や頂点が接する場合や、図 3 のようにある長方形が別の長方形の内部に含まれる場合も認められない。

(条件 3)接続長方形を作って得られる得点は、その点の対に付けられた番号と等しい。

以上の条件を満たしながら、最高の得点を得るプログラムを作成せよ。

problem_22945_0d52a965663d84345db19b84e9415a7a.jpg

入力

最初の行に、点の対の数が与えられる。

続く各行に、番号 $1$ から順に、各対の 2 点の座標が与えられる。

点の対の数は $50$ 以下(点は $100$ 個以下)である。各座標は $100$ 以下の正整数である。

対をなす 2 点は、同じ垂直線上にも同じ水平線上にもない。

出力

最初の行に選んだ対の数を出力せよ。次の行に選んだ接続長方形の番号を昇順で出力せよ。

入出力例

入力 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

出力 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.