eolymp
bolt
Try our new interface for solving problems
Məsələlər

Birləşmiş qıflar

Birləşmiş qıflar

Qıflar çalaya bənzər obyektlərdir. Qıfı \textbf{(p_1, p_2, ..., p_n) }nöqtələr ardıcıllığı ilə verilmiş və aşağıdakı şərtləri ödəyən ikiölçülü obyekt kimi təyin edək: \begin{itemize} \item \textbf{3 ≤ n ≤ 1000}; \item Tutaq ki, \textbf{p_i} nöqtəsi \textbf{(}\textit{\textbf{x_i}}\textbf{, }\textit{\textbf{y_i}}\textbf{)} koordinatlarına malikdir. Əgər elə \textbf{c (1 < c < n)} indeksi varsa ki, \textbf{y_1 > y_2 > ... > y_c} və \textbf{y_c < y_c_\{+1\} < y_c_\{+2 \}< ... < y_n,} onda \textbf{p_c} nöqtəsi qıfın çıxıntı nöqtəsi adlanır. \item Bütün \textbf{1 ≤ i < c}\textit{ }üçün\textit{ } \textbf{x_i < x_c} və bütün \textbf{c < i ≤ n }üçün\textit{ } \textbf{x_i > x_c}; \item \textbf{1 < i < c} üçün \textbf{p_i_\{-1\}_\{ \}}nöqtəsinin \textbf{p_i} ətrafında saat əqrəbinin hərəkəti istiqamətində fırlatması nəticəsində \textbf{p_i_\{-1\}} nöqtəsinin \textbf{p}_\{i \}və \textbf{p_i_\{+1\}} ilə kollinear olması üçün zəruri olan bucaq \textbf{180 }dərəcədən böyükdür. Analoji olaraq, \textbf{c < i < n} üçün \textbf{p_i}_\{-1\} nöqtəsinin \textbf{p_i} ətrafında saat əqrəbinin hərəkəti istiqamətində fırlanması zamanı \textbf{p_\{i \}}və \textbf{p_i}_\{+1\} ilə kollinear olması üçün zəruri olan bucaq da 180 dərəcədən böyükdür. \item İki qonşu nöqtəni birləşdirən parçalar yalnız öz uc nöqtələrində kəsişirlər. \end{itemize} Məsələn, aşağıdakı şəkildə altı nöqtəli və \textit{\textbf{c }}\textbf{= 4} olan halda qıf təsvir edilmişdir: \includegraphics{https://static.e-olymp.com/content/e4/e471c1cd1b6b7cf50bb9bd28b9d19b5d0286214d.jpg} \textbf{(p_1p_2, p_2p_3, ..., p_n_\{-1\}p_n) }parçalar ardıcıllığını qıfın gövdəsi adlandıracağıq. Sizə iki \textbf{P = (p_1, p_2, ..., p_n) }və \textbf{Q = (q_1, q_2, ..., q_m) }qıfları verilmişdir. Burada \textbf{p_i } nöqtələrinin bütün \textbf{x} koordinatları mənfi tam ədədlərdir, \textbf{q_i} nöqtələrinin bütün \textbf{x} koordinatları isə müsbət tam ədədlərdir. İki qıfın çıxıntılarının bir-biri ilə nazik borucuq ilə birləşdirildiyini nəzərə alaraq, qıfları su ilə dolduraq. Su qəbul edilməyə başladıqda qıflar məlum fiziki qanuna uyğun olaraq dolmağa başlayacaq (hər iki qıfda suyun səviyyəsi eyni olacaq). Əgər \textbf{P} qıfında suyun səviyyəsi \textbf{min(y_1, y_n)} çatacaqsa, onda su qıfdan daşıb tökülməyə başlayacaq (eyni sözləri \textbf{Q} qıfı haqqında da demək olar). Sizin proqram müəyyən miqdarda su töküldükdən sonra iki qıfdakı suyun səviyyəsini müəyyənləşdirməlidir. Məsələyə ikiölçülü fəzada baxdığımızdan suyun miqdarı dolmuş sahə ilə ölçüləcək. Qıfların çıxıntısını birləşdirən borucuqların həcmini sıfıra bərabər hesab edin. \InputFile Birinci sətirdə testlərin \textbf{t} sayı yerləşir. Hər bir test üç sətirdə verilir. Birinci sətirdə iki qıfa tökülmüş suyun miqdarı olan bir tam \textbf{a (1 ≤ a ≤ 100000)} ədədi yerləşir. Sonrakı iki sətir uyğun olaraq \textbf{P} və \textbf{Q} qıflarını təsvir edir. Hər bir qıf \textbf{k} sayda \textbf{x_1 y_1 x_2 y_2 ... x_k y_k} ədədləri şəklində təsvir edilir. Burada \textbf{k }-- qıfdakı nöqtələrin sayı (\textbf{P} üçün\textit{\textbf{ }}\textbf{n}, \textbf{Q} üçün\textit{\textbf{ }}\textbf{m}), \textbf{x_i y_\{i \}}ardıcıllığı ilə qıfların nöqtələrinin koordinatları verilir. \OutputFile Çıxışa \textbf{t} sətir verilir. Onların hər birində suyun son səviyyəsini bildirən\textit{\textbf{ L}} ədədi koordinat vahidlərilə ifadə olunub və üç onluq işarəyədək yuvarlaqlaşdırılıb.
Zaman məhdudiyyəti 1 saniyə
Yaddaşı istafadə məhdudiyyəti 64 MiB
Giriş verilənləri #1
2
25
3 -30 10 -20 0 -10 10
3 10 10 20 0 30 10
25
3 -30 -10 -20 -20 -10 -10
3 10 10 20 0 30 10
Çıxış verilənləri #1
3.536
-15.000