C++ Bài 12.C5: Mất Chó
Người nông dân Hiếu bị mất một chú chó. Giả sử Hiếu đang ở vị trí \(x\) và con chó thì ở vị trí \(y\). Nếu Hiếu biết chính xác vị trí của chú chó anh ấy có thể tới trực tiếp chỗ đó bằng cách di chuyển một khoảng cách là \(|x−y|\). Nhưng Hiếu lại không biết chỗ của chú chó nhưng anh ấy đã tìm được một bài viết về khoa học máy tính và các nhà khoa học đã đưa ra giải pháp cho vấn đề này:
Giải pháp được đề xuất để người nông dân Hiếu tìm chú chó là di chuyển đến vị trí \(x+1\), sau đó đảo ngược hướng và di chuyển đến vị trí \(x−2\), sau đó là đến vị trí \(x+4\), và cứ thế tiếp tục, theo một kiểu "zig zag", mỗi bước di chuyển xa gấp đôi so với vị trí bắt đầu ban đầu của mình hơn trước. Cách di chuyển này đảm bảo rằng Hiếu sẽ đi ít nhất là \(9\) lần khoảng cách trực tiếp \(|x−y|\) giữa Hiếu và chú chó trước khi anh tìm thấy chú chó.
Cho \(x\) và \(y\), hãy tính tổng khoảng cách anh ta sẽ di chuyển theo chiến lược tìm kiếm zig-zag trên cho đến khi Hiếu tìm thấy chú chó.
INPUT FORMAT
Dòng đầu tiên của input chứa 2 số nguyên riêng biệt được phân tách bằng dấu cách \(x\) và \(y\) \((0 \leq x, y \leq 10^3)\)
OUTPUT FORMAT
Hãy in một dòng chứa khoảng cách người nông dân Hiếu sẽ di chuyển để đạt đến chỗ chú chó.
Ví dụ:
Input
3 6
Output
9
Giải thích ví dụ mẫu:
- Ví dụ 1:
- Hiếu bắt đầu từ vị trí 3 và con chó ở vị trí 6.
- Khoảng cách trực tiếp là |3 - 6| = 3.
- Hiếu di chuyển theo chiến lược zig-zag: 1, -2, 4, -8, 16, -32, 64, -128, 256.
- Tổng khoảng cách di chuyển cho đến khi tổng số bước đã vượt qua ít nhất 9 lần khoảng cách trực tiếp là 9.
Lời giải bài tập này: Tại đây
Group giải đáp thắc mắc: Lập trình 24h
Fanpage CLB: CLB lập trình Full House- Việt Nam
Youtube: CLB Lập Trình Full House
Comments