HSG THPT TPHCM 2021 - Thay thế

Xem dạng PDF

Gửi bài giải

Điểm: 0,10 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Tác giả:
Nguồn bài:
Kỳ thi Học sinh giỏi THPT TPHCM 2021
Dạng bài
Ngôn ngữ cho phép
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, Scratch

Phép toán ~\text{mod}~ được áp dụng trên số nguyên và cho kết quả là số dư của phép chia số nguyên. Ví dụ: ~24 \text{ mod } 16~ cho kết quả ~8~, còn ~15 \text{ mod } 16~ cho kết quả ~15~.

Cho trước bốn số nguyên dương ~N~, ~P~, ~A~, ~B~. Lặp lại thao tác sau đây nhiều lần: lấy số ~N~ và thay thế nó bằng một trong ba số nguyên ~(N + A) \text{ mod } P~, ~(N + B) \text{ mod } P~ hoặc ~(N + A + B) \text{ mod } P~. Hãy cho biết cần thực hiện ít nhất bao nhiêu thao tác thay thế ở trên để từ số ~N~ ta được số ~R~.

Input

Dòng đầu tiên ghi hai số ~N~, ~P~ (~0 < N \leq 10^9~, ~0 < P \leq 10^6~).

Dòng thứ hai ghi ba số ~A~, ~B~, ~R~ (~0 < A, B \leq P~, ~0 \leq R < P~, ~N \neq R~).

Output

Ghi một số nguyên cho biết số thao tác ít nhất, nếu không thể thực hiện được thì ghi ~-1~.

Sample Input 1

20 16
3 4 15

Sample Output 1

2

Sample Input 2

6 8
2 4 1

Sample Output 2

-1

Notes

Ở test đầu tiên, với ~N = 20~, thực hiện thay thế ~N~ như sau:

  • Lần 1: thay ~N = 8~ vì ~(20 + 4) \text{ mod } 16 = 8~

  • Lần 2: thay ~N = 15~ vì ~(8 + 3 + 4) \text{ mod } 16 = 15~

Sau 2 lần thay thế, kết quả được ~N = R = 15~.


Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.