Tích của mảng
Đề bài
Mô tả
Cho một mảng gồm số nguyên. Bạn được phép thực hiện hai loại thao tác:
- Chọn hai vị trí và (, ): ghi giá trị vào ô thứ và xoá số ở ô thứ .
- Chọn một vị trí và xoá số ở ô thứ . Thao tác loại này được dùng không quá một lần, tại bất kỳ thời điểm nào.
Sau mỗi thao tác, số phần tử của mảng giảm đi một, nhưng chỉ số của các vị trí giữ nguyên. Các số đã bị xoá không được dùng trong những thao tác sau.
Nhiệm vụ của bạn là thực hiện đúng thao tác sao cho số duy nhất còn lại trong mảng là lớn nhất có thể. Số này có thể rất lớn, nên thay vì in ra giá trị, bạn cần in ra một dãy thao tác dẫn tới số lớn nhất đó.
Dữ liệu vào
- Dòng đầu chứa số nguyên .
- Dòng thứ hai chứa số nguyên .
Dữ liệu ra
In ra dòng, mỗi dòng là một thao tác:
- Thao tác loại 1:
1 i j, trong đó , là hai vị trí được chọn. - Thao tác loại 2:
2 i, trong đó là vị trí được chọn. Không được có quá một dòng loại này.
Nếu có nhiều dãy thao tác cùng dẫn tới số lớn nhất, in ra bất kỳ dãy nào.
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 5 5 -2 0 1 -3 |
2 3 1 1 2 1 2 4 1 4 5 |
Xoá ô 3 (số 0), rồi nhân dồn các số còn lại: . Đây là giá trị lớn nhất. |
| 2 2 -1 |
2 2 | Xoá ô 2 (số ), còn lại số . Giữ cả hai sẽ cho . |
| 4 0 0 0 0 |
1 1 2 1 2 3 1 3 4 |
Mọi số đều bằng , kết quả tốt nhất là . |
Bình luận