Biến đổi dãy số
Xem dạng PDF
Gửi bài giải
Điểm:
1,00 (OI)
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
256M
Input:
stdin
Output:
stdout
Dạng bài
Cho dãy số nguyên dương ~A = (a_1,a_2,\dots,a_n)~. Ta được phép thực hiện nhiều lần phép biến đổi:
- Chọn hai chỉ số nguyên ~i, j~ với ~1 \le i, j \le n~
- Gán ~a_i = \max(a_i, a_j)~
Cho thêm dãy ~B = (b_1,b_2,\dots,b_n)~. Hãy xác định có thể biến đổi ~A~ để trở thành đúng ~B~ hay không.
Nếu có thể, cần đưa ra ít nhất số phép biến đổi và in ra các cặp ~i, j~ theo đúng thứ tự thực hiện.
Yêu cầu
- Nếu không thể biến đổi ~A~ thành ~B~, in
NO. Nếu có thể:
- In
YES - Dòng tiếp theo in số nguyên ~m~ là số phép biến đổi ít nhất
- Sau đó in ~m~ dòng, mỗi dòng chứa ~i~ và ~j~ mô tả một phép biến đổi.
- In
Dữ liệu
- Dòng 1: số nguyên ~n~ (~1 \le n \le 10^5~)
- Dòng 2: ~n~ số nguyên ~a_1,a_2,\dots,a_n~ (~1 \le a_i \le 10^9~)
- Dòng 3: ~n~ số nguyên ~b_1,b_2,\dots,b_n~ (~1 \le b_i \le 10^9~)
Kết quả
Theo đúng định dạng ở phần yêu cầu.
Ví dụ
Ví dụ 1
Input
5
1 1 1 3 4
3 3 3 4 4
Output
YES
4
1 4
2 4
3 4
4 5
Giải thích
Ví dụ 1
- Dùng ~a_4=3~ để nâng ~a_1,a_2,a_3~ lên ~3~
- Dùng ~a_5=4~ để nâng ~a_4~ lên ~4~ Sau 4 phép biến đổi nhận được đúng ~B~ và đây là số phép ít nhất vì có đúng 4 vị trí ban đầu có ~a_i < b_i~.
Ràng buộc và chấm điểm
Ràng buộc
- ~1 \le n \le 10^5~
- ~1 \le a_i, b_i \le 10^9~
Bình luận