QOJ.ac

QOJ

Time Limit: 4 s Memory Limit: 1024 MB

#19929. Linia wysokiego napięcia

Statistics

Trwają prace nad projektem infrastruktury dla nowo budowanego miasta. Aby zapewnić sprawne i stabilne dostawy energii elektrycznej, postanowiono poprowadzić przez to miasto linię wysokiego napięcia. Jednak ponieważ linia wysokiego napięcia wytwarza silne pole elektromagnetyczne, pożądane jest, aby znajdowała się ona możliwie jak najdalej od punktów zamieszkania.

Przyjmijmy, że obszary mieszkalne miasta są reprezentowane przez $N$ punktów na płaszczyźnie, a linia wysokiego napięcia ma na tej płaszczyźnie postać prostej. Ponieważ punkt zamieszkania położony najbliżej linii wysokiego napięcia odczuwa największy jej wpływ, optymalna linia wysokiego napięcia powinna przecinać miasto, maksymalizując jednocześnie minimalną odległość w linii prostej do każdego z punktów zamieszkania. To, że linia wysokiego napięcia (prosta) przecina miasto, oznacza ściśle, że po obu jej stronach znajduje się co najmniej jeden punkt zamieszkania.

Napisz program, który wyznaczy optymalną linię wysokiego napięcia i wypisze minimalną odległość w linii prostej od tej linii do punktów zamieszkania.

Wejście

Na standardowym wejściu podane są następujące informacje. W pierwszym wierszu znajduje się liczba punktów zamieszkania w nowym mieście $N$ ($2 \le N \le 2,000$). W kolejnych $N$ wierszach podane są współrzędne każdego punktu zamieszkania w postaci dwóch liczb całkowitych. Współrzędne mieszczą się w zakresie od –$10^9$ do $10^9$. Żadne dwa punkty zamieszkania podane na wejściu nie mają dokładnie takich samych współrzędnych.

Wyjście

Na standardowe wyjście należy wypisać w postaci liczby rzeczywistej minimalną odległość w linii prostej do punktów zamieszkania dla optymalnej linii wysokiego napięcia przecinającej miasto. Wynik zostanie uznany za poprawny, jeśli błąd bezwzględny lub błąd względny wypisanej liczby rzeczywistej nie przekracza $10^{-6}$. Dla przypomnienia, błąd bezwzględny oznacza |(wypisana wartość) – (poprawna odpowiedź)|, a błąd względny oznacza |(wypisana wartość) – (poprawna odpowiedź)| / (poprawna odpowiedź).

Podzadania

  • Podzadanie 1: Odpowiada 14 ze 100 punktów; $N = 2$ lub $N = 3$.
  • Podzadanie 2: Odpowiada 21 ze 100 punktów; $N \le 50$, a współrzędne mieszczą się w zakresie od –1,000 do 1,000. Ponadto żadne trzy punkty zamieszkania nie leżą na jednej prostej.
  • Podzadanie 3: Odpowiada 9 ze 100 punktów; $N \le 500$, a współrzędne mieszczą się w zakresie od –$10^5$ do $10^5$. Ponadto żadne trzy punkty zamieszkania nie leżą na jednej prostej.
  • Podzadanie 4: Odpowiada 30 ze 100 punktów; $N \le 2,000$, a współrzędne mieszczą się w zakresie od –$10^9$ do $10^9$. Ponadto żadne trzy punkty zamieszkania nie leżą na jednej prostej.
  • Podzadanie 5: Odpowiada 26 ze 100 punktów; brak dodatkowych ograniczeń poza pierwotnymi ograniczeniami zadania.

Przykład

Przykład

Wejście 1

4
0 0
1 1
0 1
1 0

Wyjście 1

0.50000000

Przykład

Wejście 2

10
-3 5
0 0
-1 6
0 8
8 2
4 0
7 -2
2 6
9 1
9 2

Wyjście 2

2.66789187

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.