Bài 3: Robot nhảy (THT A Thừa Thiên Huế 2026)

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
C++, Python, Scratch
Điểm: 900 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Một con robot đứng trên một tia số. Tia số này bắt đầu từ vạch số \(0\) và kéo dài mãi về phía bên phải. Ban đầu, robot đang đứng ở vạch số \(N\) (\(N > 0\)).

Robot được lập trình để nhảy liên tục theo hai bước luân phiên nhau: đầu tiên nhảy tiến về phía bên phải \(A\) bước, sau đó nhảy lùi về phía bên trái \(B\) bước, rồi lại nhảy sang phải \(A\) bước, nhảy sang trái \(B\) bước... Cứ như thế tạo thành một chuỗi di chuyển liên tục. (Mỗi lần nhảy sang phải hoặc sang trái đều tính là một lần nhảy).

Yêu cầu: Hãy tính xem sau ít nhất bao nhiêu lần nhảy thì robot sẽ lùi chạm đúng vào vạch số \(0\), hoặc nhảy lùi vượt qua cả vạch số \(0\) (rơi ra khỏi tia số). Nếu robot cứ nhảy tiến xa mãi mà không bao giờ lùi về tới vạch số \(0\), hãy in ra \(0\).

Input

  • Gồm ba số tự nhiên \(N, A, B\) (\(1 \le N, A, B \le 10^{12}\)). Mỗi số trên một dòng.

Output

  • In ra một số tự nhiên duy nhất là số lần nhảy ít nhất để robot chạm hoặc vượt qua vạch số \(0\) về phía bên trái. Nếu không bao giờ tới được, in ra \(0\).

Example

Test 1

Input
10
1
3
Output
10
Note

Ban đầu robot ở vạch số \(10\). Quá trình nhảy diễn ra như sau:

  • Lần 1 (sang phải 1): \(10 + 1 = 11\)
  • Lần 2 (sang trái 3): \(11 - 3 = 8\)
  • Lần 3 (sang phải 1): \(8 + 1 = 9\)
  • Lần 4 (sang trái 3): \(9 - 3 = 6\)
  • Lần 5 (sang phải 1): \(6 + 1 = 7\)
  • Lần 6 (sang trái 3): \(7 - 3 = 4\)
  • Lần 7 (sang phải 1): \(4 + 1 = 5\)
  • Lần 8 (sang trái 3): \(5 - 3 = 2\)
  • Lần 9 (sang phải 1): \(2 + 1 = 3\)
  • Lần 10 (sang trái 3): \(3 - 3 = 0\) (Vừa chạm vạch \(0\)).

Vậy robot cần tổng cộng \(10\) lần nhảy.

Test 2

Input
4
1
4
Output
4
Note

Ban đầu robot ở vạch số \(4\).

  • Lần 1 (sang phải 1): \(4 + 1 = 5\)
  • Lần 2 (sang trái 4): \(5 - 4 = 1\)
  • Lần 3 (sang phải 1): \(1 + 1 = 2\)
  • Lần 4 (sang trái 4): Từ vạch số \(2\) mà lùi lại \(4\) bước thì robot sẽ vượt qua cả vạch số \(0\) (rơi khỏi tia số).

Vậy ở lần nhảy thứ \(4\) robot đã thỏa mãn điều kiện. Cần in ra \(4\).

Test 3

Input
5
4
2
Output
0
Note

Ban đầu robot ở vạch số \(5\).

  • Lần 1 (sang phải 4): \(5 + 4 = 9\)
  • Lần 2 (sang trái 2): \(9 - 2 = 7\)
  • Lần 3 (sang phải 4): \(7 + 4 = 11\)
    ...
    Nhận thấy robot sẽ không bao giờ quay lại chạm tới vạch số \(0\). In ra \(0\).

Scoring

  • Subtask \(1\) (\(60\%\) số điểm): \(1 \le N, A, B \le 10^3\).
  • Subtask \(2\) (\(40\%\) số điểm): Không có ràng buộc gì thêm.

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.