Connect
Xem dạng PDFCho hai tập ~A~ và ~B~ đều có ~n~ phần tử phân biệt. Bạn sẽ chọn ra hai subset ~r, q~ sao cho ~r\subset A, q\subset B~ và ~|r|=|q|~. Ta sẽ sử dụng một ánh xạ ~f~ từ tập ~r~ vào tập ~q~ sao cho ~f~ là hàm song ánh. Tức là ~\forall x\in r\Rightarrow \exists y\in q~ sao cho ~f(x)=y~ và ~f(x_1)\neq f(x_2) \forall x_1 \neq x_2~. Ngoài ra bạn cần ánh xạ sao cho ~\forall x_1, x_2\in r, x_1\neq x_2 \Rightarrow [\min(x_1, f(x_1)), \max(x_1, f(x_1)] \cap [\min(x_2, f(x_2), \max(x_2, f(x_2)]\neq \varnothing~.
Hãy tìm số nguyên dương ~k=|r|=|q|~ lớn nhất sao cho tồn tại cách ánh xạ thỏa mãn, nếu không thì hãy ỉn ra ~0~.
Dữ liệu vào
- Dòng đầu tiên gồm một số nguyên dương ~n~ (~n\le 10^5~).
- Dòng tiếp theo chứa ~n~ số nguyên dương ~a_1, a_2, ..., a_n~ (~|a_i| \le 10^{18}, a_i\neq a_j\ \forall i\neq j~) - thể hiện các phần tử của tập ~A~.
- Dòng tiếp theo chứa ~n~ số nguyên dương ~b_1, b_2, ..., b_n~ (~|b_i| \le 10^{18}, a_i\neq a_j\ \forall i\neq j~) - thể hiện các phần tử của tập ~B~.
Kết quả
- Dòng đầu tiên in ra một số nguyên dương ~k~.
- ~k~ dòng tiếp theo, mỗi dòng in ra hai cặp số ~(i, j)~ thể hiện bạn ánh xạ ~f~ từ ~a_i~ vào ~a_j~.
- Dòng cuối cùng hãy in ra ~-1 -1~.
Chấm điểm
Nếu bạn chỉ in ra số nguyên dương ~k~ thì bạn sẽ nhận được ~36~% số điểm của test.
- ~10~% số điểm có ~n\le 10~.
- ~25~% số điểm có ~n\le 100~.
- ~35~% số điểm có ~n\le 1000~.
- ~30~% số điểm không có ràng buộc gì thêm.
Ví dụ
Dữ liệu vào
3
-1 1 3
0 2 4
Kết quả
3
1 1
2 2
3 3
-1 -1
~r = \{1, 2, 3\}~, ~q =\{1, 2, 3\}~
~f(a_1) = b_1~
~f(a_2)=b_2~
~f(a_3)=b_3~
Bình luận