Cân bằng mảng
Đề bài
Mô tả
Cho một mảng gồm số nguyên dương, đánh số từ đến .
Bạn được phép thực hiện thao tác sau không quá lần:
- Chọn ba số nguyên , và với và ;
- Gán và .
Lưu ý rằng lượng chuyển đi là , trong đó là chỉ số của phần tử cho, không phụ thuộc vào . Cho phép chọn (khi đó mảng không đổi) và cho phép .
Sau mỗi thao tác, mọi phần tử của mảng đều phải không âm.
Hãy tìm một dãy không quá thao tác sao cho sau khi thực hiện xong, tất cả các phần tử của mảng bằng nhau; hoặc cho biết điều đó là không thể.
Dữ liệu vào
Dòng đầu chứa một số nguyên là số bộ dữ liệu. Sau đó là bộ dữ liệu.
Dòng đầu của mỗi bộ chứa số nguyên là số phần tử của mảng. Dòng thứ hai chứa số nguyên .
Dữ liệu ra
Với mỗi bộ dữ liệu, in ra kết quả như sau:
- Nếu không tồn tại dãy thao tác thoả mãn, in ra ;
- Ngược lại, in ra một số nguyên với là số thao tác. Sau đó in ra dòng, dòng thứ chứa ba số nguyên , , (; ) mô tả thao tác thứ .
Nếu có nhiều dãy thao tác thoả mãn, in ra dãy bất kỳ. Bạn không cần cực tiểu hoá .
Ràng buộc
- Tổng trên tất cả các bộ dữ liệu không vượt quá
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 3 4 2 16 4 18 6 1 2 3 4 5 6 5 11 19 1 1 3 |
8 2 1 8 1 3 2 3 1 2 1 4 2 4 1 5 1 2 10 1 3 10 1 4 10 -1 12 1 2 1 2 1 10 1 3 2 3 1 1 1 4 3 4 1 1 1 5 2 5 1 1 1 2 7 1 3 7 1 4 7 1 5 7 |
Bộ 1: tổng bằng , chia hết cho , giá trị chung là ; lời giải dùng thao tác. Bộ 2: tổng bằng không chia hết cho nên vô nghiệm. Bộ 3: tổng bằng , giá trị chung là . |
| 4 1 1 1 100000 2 1 1 2 1 2 |
0 0 3 1 2 1 2 1 1 1 2 1 -1 |
Hai bộ đầu có nên mảng đã "bằng nhau", in . Bộ 3 đã bằng nhau sẵn nhưng dãy thao tác ở trên vẫn hợp lệ vì . Bộ 4 có tổng không chia hết cho . |
Bình luận