Bội của độ dài
Đề bài
Mô tả
Cho một mảng gồm số nguyên.
Bạn cần biến tất cả các phần tử của mảng thành bằng cách thực hiện thao tác sau đúng ba lần:
- Chọn một đoạn liên tiếp . Với mỗi phần tử trong đoạn này, cộng thêm vào nó một bội của , trong đó là độ dài của đoạn. Các giá trị cộng thêm cho từng vị trí có thể khác nhau.
Có thể chứng minh rằng luôn tồn tại cách làm cho tất cả các phần tử bằng .
Dữ liệu vào
- Dòng đầu chứa một số nguyên : số phần tử của mảng.
- Dòng thứ hai chứa số nguyên .
Dữ liệu ra
In ra sáu dòng, mô tả ba thao tác. Với mỗi thao tác, in hai dòng:
- Dòng đầu chứa hai số nguyên (): hai đầu của đoạn được chọn.
- Dòng thứ hai chứa số nguyên (): các giá trị cộng thêm vào . Mỗi phải chia hết cho .
Nếu có nhiều cách, in ra một cách bất kỳ.
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 4 1 3 2 4 |
1 3 3 9 6 4 4 -4 1 4 -4 -12 -8 0 |
Thao tác 1 cộng vào các bội của , biến mảng thành (mỗi phần tử chia hết cho ). Thao tác 2 cộng vào , biến . Thao tác 3 cộng vào các bội của để triệt tiêu tất cả về . |
| 1 -2 |
1 1 2 1 1 0 1 1 0 |
Với , mọi số đều là bội của . Thao tác đầu cộng để triệt tiêu ; hai thao tác còn lại cộng . |
Bình luận