Mistrzostwa Polski Szkół Średnich w Programowaniu Zespołowym 2024

2020-2022 2023 Regulations Schedule RODO info Ranking

Problem description


Upalny dzień
(C)
Limit pamięci: 256 MB
Limit czasu: 2.00 s

Przyjaciel Jasia, Tomek, po udanej imprezie obudził się w samo południe na środku polany. Niepewny wydarzeń minionej nocy, zaczął zastanawiać się, jak wrócić do domu. Jednak żar lejący się z nieba i obawa przed poparzeniami słonecznymi skutecznie zniechęcały go do drogi. Na szczęście na łące rośnie n drzew, a każde z nich rzuca choć odrobinę cienia.

Dla uproszczenia przyjmujemy, że i-te drzewo rzuca cień będącym kołem o promieniu ri oraz środku w (xi,yi). Cienie drzew mogą na siebie nachodzić lub siebie wzajemnie zawierać.Zakładamy również, że pnie drzew są nieskończenie cienkie i nie utrudniają poruszania się Tomka, który w naszych rozważaniach jest reprezentowany jako punkt.

Tomek może poruszać się w dowolnym kierunku z prędkością 1 jednostki odległości na sekundę i w każdej chwili zmieniać kierunek ruchu. Tomek obudził się w punkcie (xs,ys), a jego dom znajduje się w punkcie (xe,ye).

Napisz program, który wyznaczy minimalny czas (w sekundach), jaki Tomek musi spędzić na słońcu, aby dotrzeć do domu.

Wejście

W pierwszym (jedynym) wierszu wejścia znajdują się cztery liczby pooddzielane pojedynczymi odstępami oznaczające kolejno xs, ys, xe, ye. Drugi wiersz wejścia zawiera pojedynczą liczbę n.
W następnych n wierszach wejścia znajdują się po 3 liczby całkowite, w i-tym z nich xi, yi, ri oznaczające współrzędne środka oraz promień cienia i-tego drzewa.
Wszystkie liczby na wejściu są całkowite.

Wyjście

W pierwszym (i jedynym) wierszu wyjścia powinna znaleźć się jedna liczba rzeczywista, oznaczająca minimalny czas, jaki Tomek musi spędzić na słońcu, aby dotrzeć do domu.
Twoja odpowiedź zostanie zakceptowana, jeśli błąd względny lub bezwględny nie przekroczy 10−6.

Ograniczenia

  •  − 109 ≤ xs, ys, xe, ye ≤ 109,
  • Punkty (xs,ys) i (xe,ye) nie pokrywają się,
  • 1 ≤ n ≤ 1000,
  •  − 109 ≤ xi, yi ≤ 109,
  • 1 ≤ r1 ≤ 109.

Przykład

Wejście Wyjście Wyjaśnienie
7 0 -1 3
3 
0 3 1
4 0 1
6 0 1
3.0000000000

Rysunek poniżej.

Wejście Wyjście Wyjaśnienie
1 1 5 5
1
3 3 2
1.6568542495

Rysunek poniżej.

Wejście Wyjście Wyjaśnienie
1 0 6 3
5 
1 1 1
2 2 1
3 3 1
4 3 1
5 3 1
0.0000000000

Rysunek poniżej.

Przykład 1.

Przykład 2.

Przykład 3.