Ngưỡng cửa thời gian

Xem dạng PDF

Gửi bài giải

Điểm: 0,01 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 512M
Input: stdin
Output: stdout

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Pascal, Python

Cách mạng Tháng Tám năm 1945 là một trong những mốc son chói lọi nhất trong lịch sử dân tộc ta. Dưới sự lãnh đạo của Đảng và Chủ tịch Hồ Chí Minh, nhân dân Việt Nam đã vùng lên giành chính quyền, khai sinh ra nước Việt Nam Dân chủ Cộng hòa – mở ra kỷ nguyên độc lập, tự do cho dân tộc.

80 năm đã qua, tinh thần Cách mạng Tháng Tám vẫn là ngọn lửa bất diệt, hun đúc ý chí kiên cường và khát vọng vươn lên của các thế hệ người Việt Nam hôm nay và mai sau.

Hôm nay, Phong, nhân vật chính của chúng ta, quyết định tìm hiểu về sự kiện ý nghĩa này. Dưới không khí náo nức, những con đường tràn ngập cờ hoa rực rỡ, Phong cặm cụi lật mở từng trang sách, lướt qua trang web lịch sử, đọc từng dòng thông tin quý báu.

Sau một lúc miệt mài với đống tài liệu, Phong chợt tìm thấy phía sau một cuốn sách có một biểu tượng kì lạ, nhưng vô cùng tinh xảo. Bên dưới biểu tượng có ghi dòng chữ mờ mà Phong đọc không rõ. Do tò mò, Phong thử đặt tay lên biểu tượng đó, bất chợt, một ánh vàng lấp lánh lóe lên, bao trùm không gian xung quanh Phong. Chưa kịp hiểu chuyện gì vừa xảy ra, vầng sáng ấy bỗng xoáy lại, hút Phong vào bên trong, như thể có một cánh cửa vừa mở ra giữa hư không vậy.

Lúc mở mắt ra, Phong thấy trước mặt mình không còn là căn phòng quen thuộc của mình. Thay vào đó là một gian nhà tranh nhỏ, với ánh đèn dầu mập mờ, và vài âm thanh côn trùng trong khu rừng sâu tối tăm. Ngay lúc đấy, có một cán bộ trung niên bước ra và bảo:

~-~ Cuối cùng cậu cũng đến rồi. Vào đây tôi bảo cái này.

Sau một hồi quan sát, cuối cùng Phong cũng nhận ra mình đã được đưa về quá khứ, thời điểm chuẩn bị cho cuộc Cách mạng tháng Tám.

Đêm hôm ấy, Phong được giao nhiệm vụ quan sát các hoạt động giao liên của địch, bám sát nhất cử nhất động của đối phương, tìm hiểu cách họ liên lạc với nhau. Được biết đây là một nhiệm vụ then chốt, có thể ảnh hưởng đến kết quả của chiến dịch, Phong vô cùng cẩn trọng.

Phong cùng đồng đội len lỏi, bước đi trên con đường sỏi đá gập ghềnh, dưới ánh trăng rạng ngời dẫn lối, họ đã đến được vị trí quan sát. Không gian xung quanh lạnh buốt, thêm tiếng gió rít bên tai khiến Phong rợn tóc gáy, nhưng với lòng dũng cảm, anh trấn tĩnh bản thân và chuẩn bị ghi chép. Lúc này, Phong tự nhủ: "Đã đến được đây thì mình phải cố gắng hết sức để hoàn thành nhiệm vụ này".

Sau một vài ngày đêm quan sát, Phong biết được rằng căn cứ của địch gồm ~N~ chốt. Để liên lạc từ chốt ~a~ đến chốt ~b~, họ nối đường dây điện thoại một chiều từ ~a~ đến ~b~. Ngoài ra, Phong còn đánh cắp được bảng thông tin về điện thoại của ~N~ chốt. Dựa vào đây, anh và cán bộ chỉ huy biết được chốt thứ ~i~ có thể gọi cho ~a_i~ chốt và có thể nhận cuộc gọi từ ~b_i~ chốt, nhưng lại không biết cụ thể là chốt nào vì thông tin đã được mã hóa.

Một điều nữa khiến cán bộ thắc mắc là ở một số chốt ~j~, kí hiệu của chốt đó cũng xuất hiện trong danh sách cuộc gọi đi và đến của chốt đó. Phong giải thích điều này có nghĩa là ngoài giao tiếp bằng điện thoại, chốt đó còn có một giao liên, anh ta sẽ xuất phát tại chốt ~j~, làm nhiệm vụ được giao và quay trở lại chốt.

Sau khi trình bày toàn bộ cho cán bộ, mắt ông sáng bừng lên, khen Phong làm việc rất tốt. Rồi ông nhờ Phong cùng với những người đồng đội, hãy thử vẽ đồ thị mô tả liên lạc giữa ~N~ chốt đó, bao gồm cả những người giao liên (nếu có). Do cán bộ đã giữ bản chính, nên Phong không biết chốt nào có giao liên, nhưng Phong biết được rằng:

  • Chỉ có tối đa một giao liên ở mỗi chốt.

  • Giữa hai chốt ~a~ và ~b~ thì có tối đa một đường dây điện thoại từ ~a~ sang ~b~, và tối đa một đường dây điện thoại từ ~b~ sang ~a~.

Bây giờ bạn đã gia nhập đội của Phong, hãy giúp Phong tìm ra một đồ thị bất kì thỏa mãn điều kiện trên.

Input

  • Dòng đầu tiên chứa một số nguyên ~N~ là số chốt trong căn cứ của địch.

  • Dòng thứ hai chứa ~N~ số nguyên ~a_1, a_2, a_3, \dots, a_n~ (~0 \leq a_i \leq 5 \times 10^5~), trong đó ~a_i~ cho biết số chốt mà từ chốt ~i~ có thể thực hiện cuộc gọi (tính cả giao liên của chốt ~i~ nếu có).

  • Dòng thứ ba chứa ~N~ số nguyên ~b_1, b_2, b_3, \dots, b_n~ (~0 \leq b_i \leq 5 \times 10^5~), trong đó ~b_i~ cho biết số chốt mà có thể thực hiện cuộc gọi đến chốt ~i~ (tính cả giao liên của chốt ~i~ nếu có).

Output

Nếu không thể tìm ra đồ thị thỏa mãn yêu cầu, in ra ~-1~. Ngược lại, in ra mô tả đồ thị mà Phong cần tìm như sau:

  • Dòng đầu tiên chứa một số nguyên ~M~ (với ~1 \leq M \leq 10^6~) là số đường dây điện thoại tìm được (tính cả giao liên).

  • Trong ~M~ dòng tiếp theo, dòng thứ ~i~ chứa hai số nguyên ~u_i, v_i~ (~1 \leq u_i, v_i \leq n~), thể hiện một đường dây điện thoại ~u_i \rightarrow v_i~ nếu ~u_i \neq v_i~, hoặc thể hiện giao liên của chốt ~u_i~ nếu ~u_i = v_i~.

Scoring

Subtask Điểm ~N~ ~\sum a, \sum b~
1 ~40\%~ ~2 \leq N \leq 8~ ~1 \leq \sum a, \sum b \leq 8~
2 ~30\%~ ~2 \leq N \leq 1000~ ~1 \leq \sum a, \sum b \leq 1000~
3 ~30\%~ ~2 \leq N \leq 5 \times 10^5~ ~1 \leq \sum a, \sum b \leq 5 \times 10^5~

Sample Input 1

3
1 1 1
1 1 1

Sample Output 1

3
3 1
2 2
1 3

Sample Input 2

3
3 2 1
2 1 3

Sample Output 2

6
1 3
1 1
1 2
2 3
2 1
3 3

Notes

Với ví dụ đầu tiên, từ thông tin mà Phong nhận được ta thấy tất cả các chốt đều có ~1~ đường dây đi và ~1~ đường dây đến. Một đồ thị mà Phong có thể đưa ra gồm ~3~ đường dây là:

  • Một đường dây điện thoại nối chốt ~3 \rightarrow 1~.

  • Một giao liên của chốt ~2~.

  • Một đường dây điện thoại nối chốt ~1 \rightarrow 3~.


Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.