QOJ.ac

QOJ

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

#2776. Syn przepływu w rurach

Statistics

Dwa lata temu pomogłeś z wielkim sukcesem zainstalować w swoim mieście pierwszą w kraju sieć rur do Flubbera. Sondaże pokazują, że wszyscy uwielbiają własne dozowniki Flubbera w kuchni, a teraz przedsiębiorczy mieszkańcy odkryli jego zastosowanie. Okazuje się, że po zmieszaniu z wodą pomaga gasić pożary! To odkrycie w samą porę, gdyż ostatnio niekontrolowane pożary są zaskakująco częste.

Rada miejska chce wykorzystać tę właściwość, przygotowując mieszaninę Flubbera i wody w centralnej stacji. Stacja, zwana Flubber Department (FD), zatrudni też specjalistów przeszkolonych do wyjazdów na miejsca pożarów i opanowywania płomieni przetworzonym Flubberem.

Rury są już rozłożone w całym mieście. Dany jest ich układ; musisz ustalić, jak skierować Flubbera z fabryki i wodę z lokalnego źródła rurami do FD.

Obie ciecze płyną tą samą siecią, być może nawet tą samą rurą. Wszystkie rury są dwukierunkowe, lecz Flubber i woda nie mogą płynąć przeciwnie w tej samej rurze. Gdy płyną w tym samym kierunku przez tę samą rurę, nieuchronnie się mieszają. Dlatego węzły wyposażono w specjalne membrany i filtry, pozwalające dowolnie rozdzielać i ponownie łączyć wszystkie napływające mieszaniny. Sieć jest układem zamkniętym: całkowite natężenie dopływu każdej cieczy do węzła musi równać się jej odpływowi, poza źródłem tej cieczy i celem, FD.

Każda rura ma przepustowość. Flubber jest dość lepki i ma lepkość $v$, więc rura transportująca $v$ litrów wody na sekundę może transportować tylko $1$ litr Flubbera na sekundę. Dla mieszanin przepustowość skaluje się liniowo. Dokładnie, jeśli $c$ oznacza przepustowość dla wody, a $f,w$ natężenia przepływu Flubbera i wody, wszystkie w litrach na sekundę, ograniczenie ma postać $v \cdot f + w \le c$.

Najważniejsze jest zrównoważenie mieszaniny docierającej do FD. Chcesz jak najwięcej cieczy łącznie, ale też dość wody, bo nierozcieńczony Flubber jest wysoce łatwopalny, i dość Flubbera, bo bez niego nie byłby to zbyt dobry „Flubber Department”! Opracowałeś wzór na „wartość” końcowej mieszaniny: $F^a \cdot W^{1-a}$, gdzie $F$ i $W$ są natężeniami dopływu Flubbera i wody w litrach na sekundę, a $a$ jest daną stałą pomiędzy $0$ a $1$.

Wyznacz największą osiągalną wartość $F^a \cdot W^{1-a}$ i sposób skierowania obu cieczy, który ją uzyskuje.

Wejście

Pierwszy wiersz zawiera liczbę miejsc $n$ ($3 \le n \le 200$), liczbę rur $p$ ($n-1 \le p \le \frac12 n(n-1)$) oraz liczby rzeczywiste $v$ ($1 \le v \le 10$) i $a$ ($0.01 \le a \le 0.99$). Miejsca są numerowane od $1$ do $n$: $1$ to fabryka Flubbera, $2$ źródło wody, a $3$ FD. Liczby rzeczywiste mają najwyżej $10$ cyfr po przecinku.

Kolejne $p$ wierszy opisuje po jednej rurze. Każdy zawiera dwie liczby całkowite $j,k$ ($1 \le j < k \le n$), oznaczające połączone miejsca, oraz liczbę całkowitą $c$ ($1 \le c \le 10$), przepustowość dla wody w litrach na sekundę.

Żadne dwie rury nie łączą tej samej pary miejsc. Ponadto sieć jest na pewno spójna.

Wyjście

Najpierw dla każdej rury, w kolejności wejściowej, wypisz dwie wartości: natężenie przepływu Flubbera i wody, ujemne przy przepływie od $k$ do $j$, tak aby zmaksymalizować $F^a \cdot W^{1-a}$. Następnie wypisz tę maksymalną wartość z błędem bezwzględnym nie większym niż $10^{-4}$.

Jeśli istnieje wiele rozwiązań, każde zostanie przyjęte. Wszystkie ograniczenia —brak przeciwnych kierunków przepływu obu cieczy w jednej rurze, zachowanie przepływu, przepustowości i zgodność skonstruowanego rozwiązania z zadeklarowaną wartością— muszą być spełnione z błędem bezwzględnym nie większym niż $10^{-4}$.

Przykład

Wejście 1

6 6 3.0 0.66
2 4 8
4 6 1
3 6 1
4 5 5
1 5 7
3 5 3

Wyjście 1

0.000000000 1.360000000
0.000000000 1.000000000
0.000000000 -1.000000000
0.000000000 0.360000000
0.880000000 0.000000000
-0.880000000 -0.360000000
1.02037965897

Wejście 2

5 5 1.0 0.5
1 2 10
2 3 10
3 4 10
4 5 10
3 5 10

Wyjście 2

5 0
5 5
4.2 3.14159
4.2 3.14159
-4.2 -3.14159
5

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.