Tích bỏ một, không dùng phép chia
Đề bài
Mô tả
Cho mảng . Với mỗi vị trí từ tới , gọi là tích của tất cả các phần tử của mảng trừ :
Hãy tính dãy theo mô-đun .
Lưu ý quan trọng: Lời giải không được sử dụng phép chia (kể cả nghịch đảo mô-đun). Lý do: nếu có thì mọi với đều bằng trên trường và việc "chia " không hợp lệ. Cách tiếp cận đúng là dùng tiền tố và hậu tố.
Dữ liệu vào
- Dòng đầu: số nguyên .
- Dòng thứ hai: số nguyên , mỗi trong .
Dữ liệu ra
Một dòng gồm số nguyên cách nhau bởi dấu cách, mỗi số là .
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 4 1 2 3 4 |
24 12 8 6 | ; ; ; . |
| 3 0 5 7 |
35 0 0 | . và vì có thừa số . |
| 4 0 0 5 7 |
0 0 0 0 | Có hai số , nên với mỗi tích còn lại luôn chứa ít nhất một số . |
Ghi chú
- Có thể có nhiều giá trị trong dãy. Nếu có số , mọi . Nếu có đúng một số tại vị trí , thì là tích các phần tử và mọi với đều là .
- Đáp số có thể lớn — luôn lấy mod .
Bình luận