CSES - Replace with Difference | Thay Bằng Hiệu
Xem PDFBạn được cho một mảng gồm \(n\) số nguyên. Bạn sẽ thực hiện \(n-1\) thao tác trên mảng.
Trong một thao tác, bạn chọn hai số \(a\) và \(b\) từ mảng, xóa cả hai số đó khỏi mảng và thêm \(|a - b|\) vào mảng.
Nhiệm vụ của bạn là tìm một dãy thao tác sao cho số cuối cùng còn lại trong mảng là \(0\).
Dữ liệu vào
Dòng đầu tiên chứa một số nguyên \(n\): độ dài của mảng.
Dòng tiếp theo chứa \(n\) số nguyên \(x_1, x_2,\dots, x_n\): các phần tử của mảng.
Dữ liệu ra
In ra \(n-1\) dòng, mỗi dòng chứa hai số nguyên \(a\) và \(b\): các số được chọn trong các thao tác. Bạn có thể in ra bất kỳ lời giải hợp lệ nào.
Nếu không tồn tại lời giải, chỉ in \(-1\).
Constraints
-
\(2 \le n \le 1000\)
-
\(1 \le x_i \le 1000\)
Example
Test 1
Input
5
2 7 4 12 1
Output
2 12
7 10
4 1
3 3
Explanation
Mảng thay đổi như sau:
-
\([2, 7, 4, 12, 1] \rightarrow\) xóa \(2\) và \(12\), thêm \(10\)
-
\([7, 4, 1, 10] \rightarrow\) xóa \(7\) và \(10\), thêm \(3\)
-
\([4, 1, 3] \rightarrow\) xóa \(4\) và \(1\), thêm \(3\)
-
\([3, 3] \rightarrow\) xóa \(3\) và \(3\), thêm \(0\)
-
\([0]\): mảng cuối cùng
Bình luận