QOJ.ac

QOJ

Time Limit: 10 s Memory Limit: 1024 MB Total points: 100

#3283. Proste równoległe

Statistics

Dana jest parzysta liczba różnych punktów na płaszczyźnie. Rozważ połączenie wszystkich punktów w pary. Należy rozważyć wszystkie możliwe parowania, w których każdy dany punkt jest połączony z dokładnie jednym innym punktem.

Gdy narysujemy proste łączące punkty każdej pary, niektóre z nich mogą być równoległe do innych. Znajdź maksymalną liczbę par równoległych prostych, rozważając wszystkie możliwe parowania punktów.

Dla czterech punktów z pierwszego przykładu wejścia istnieją trzy parowania pokazane na rysunku B.1. Liczby par równoległych prostych wynoszą od lewej $0$, $0$ i $1$. Zatem maksimum to $1$.

problem_3283_11ee6be3bf9f53a5b0f6eb6b3dc59528.png

Rysunek B.1. Wszystkie trzy możliwe parowania dla przykładowego wejścia 1

Dla ośmiu punktów z drugiego przykładu wejścia można utworzyć pary jak na rysunku B.2. W takim parowaniu wszystkie cztery proste są wzajemnie równoległe. Innymi słowy, sześć par prostych $(L_1,L_2)$, $(L_1,L_3)$, $(L_1,L_4)$, $(L_2,L_3)$, $(L_2,L_4)$ i $(L_3,L_4)$ jest równoległych. Zatem maksymalna liczba par równoległych prostych w tym przypadku to $6$.

Wejście

Wejście składa się z jednego przypadku testowego w następującym formacie.

$$\begin{gathered}m\\x_1\quad y_1\\\vdots\\x_m\quad y_m\end{gathered}$$

problem_3283_a32f127b92ca4c9aee6d4da1aba26b0a.png

Rysunek B.2. Maksymalizacja liczby par równoległych prostych dla przykładowego wejścia 2

Pierwszy wiersz zawiera parzystą liczbę całkowitą $m$, liczbę punktów ($2\le m\le16$). Każdy z następnych $m$ wierszy podaje współrzędne punktu. Liczby całkowite $x_i,y_i$ ($-1000\le x_i\le1000$, $-1000\le y_i\le1000$) w $i$-tym z tych wierszy to odpowiednio współrzędne $x$ i $y$ punktu $i$.

Wszystkie punkty mają różne położenia, czyli $x_i\ne x_j$ lub $y_i\ne y_j$ dla każdych $i\ne j$. Ponadto żadne trzy punkty nie leżą na jednej prostej.

Wyjście

Wypisz w jednym wierszu maksymalną możliwą liczbę par równoległych prostych opisaną powyżej.

Przykład

Wejście 1

4
0 0
1 1
0 2
2 4

Wyjście 1

1

Wejście 2

8
0 0
0 5
2 2
2 7
3 -2
5 0
4 -2
8 2

Wyjście 2

6

Wejście 3

6
0 0
0 5
3 -2
3 5
5 0
5 7

Wyjście 3

3

Wejście 4

2
-1000 1000
1000 -1000

Wyjście 4

0

Wejście 5

16
327 449
-509 761
-553 515
360 948
147 877
-694 468
241 320
463 -753
-206 -991
473 -738
-156 -916
-215 54
-112 -476
-452 780
-18 -335
-146 77

Wyjście 5

12

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.