QOJ.ac

QOJ

Time Limit: 2 s Memory Limit: 256 MB Total points: 100

#24361. Wyścig kolarski

Statistics

W pewnej chwili, zwanej chwilą początkową, kolarze uczestniczący w wyścigu szosowym znajdują się w odległościach $x_1,x_2,\ldots,x_n$ metrów od startu ($n$ to całkowita liczba kolarzy). Każdy kolarz porusza się ze swoją stałą prędkością; prędkości wynoszą $v_1,v_2,\ldots,v_n$ metrów na sekundę. Wszyscy poruszają się w tym samym kierunku.

Reporter relacjonujący zawody chce wyznaczyć chwilę, w której odległość między prowadzącym a ostatnim kolarzem będzie najmniejsza, aby sfotografować z helikoptera wszystkich uczestników wyścigu jednocześnie.

Napisz program, który dla podanej liczby kolarzy $n$, ich pozycji początkowych $x_1,x_2,\ldots,x_n$ i prędkości $v_1,v_2,\ldots,v_n$ obliczy chwilę $t$, w której odległość $l$ między pierwszym a ostatnim kolarzem jest najmniejsza.

Wejście

Pierwszy wiersz pliku wejściowego zawiera liczbę całkowitą $n$, liczbę kolarzy.

Każdy z następnych $n$ wierszy zawiera dwie liczby całkowite: $x_i$, odległość od startu do kolarza $i$ w chwili początkowej ($0\le x_i\le10^7$), oraz $v_i$, jego prędkość ($0\le v_i\le10^7$).

Wyjście

Do pliku wyjściowego wypisz dwie liczby rzeczywiste: $t$, czas w sekundach od chwili początkowej do chwili, gdy odległość w metrach między pierwszym a ostatnim kolarzem jest najmniejsza, oraz $l$, tę odległość.

Liczby $t$ i $l$ muszą mieć błąd bezwzględny lub względny nie większy niż $10^{-6}$. Oznacza to, że jeśli wypisana liczba wynosi $x$, a poprawna odpowiedź $y$, odpowiedź zostanie uznana za poprawną, gdy $|x-y|/\max\{1,|y|\}$ nie przekracza $10^{-6}$.

Przykład

Wejście 1

3
0 40
30 10
40 30

Wyjście 1

1 30

Wejście 2

5
90 100
100 70
100 70
110 60
120 35

Wyjście 2

0.5 5.000000000000

Podzadania

Zadanie ma cztery podzadania. Każde podzadanie jest oceniane za pomocą osobnej grupy testów. Punkty są przyznawane tylko wtedy, gdy zaliczone zostaną wszystkie testy w danej grupie.

Podzadanie 1 (20 punktów)

$2\le n\le50$, $0\le x_i\le1000$, $0\le v_i\le1000$. Gwarantuje się istnienie odpowiedzi, w której $t$ jest liczbą całkowitą nie większą niż $1000$.

Podzadanie 2 (20 punktów)

$2\le n\le200$.

Podzadanie 3 (30 punktów)

$2\le n\le2000$.

Podzadanie 4 (30 punktów)

$2\le n\le10^5$.

Informacja zwrotna

Podczas rundy można najwyżej 10 razy poprosić o wyniki działania programu na testach jury. Zapytania można składać nie częściej niż raz na 5 minut. Dla każdego testu podawany jest wynik uruchomienia programu na tym teście.

W tym zadaniu można wybrać rozwiązanie, które zostanie ocenione. W takim przypadku punkty przyznawane są za lepsze z następujących rozwiązań:

  • rozwiązanie wybrane jawnie;
  • ostatnie rozwiązanie przyjęte do oceny.

Jeśli nie dokonano wyboru, ocenione zostanie najlepsze z następujących rozwiązań:

  • rozwiązania, dla których obejrzano punktację;
  • ostatnie rozwiązanie przyjęte do oceny.

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.