Mô tả bài toán
Amal muốn âm lượng b, Bimal đổi thành a. Remote có nút ±1, ±2, ±5. Tìm số nhấn ít nhất để từ a về b (âm lượng không âm).
Ví dụ
a=5,b=14 → chênh 9. Nhấn +5 (10), +2, +2 → 3 nhấn.
Thuật toán
Chênh d = |a-b|. Dùng tham lam: số nút 5 = d/5, phần dư r = d%5. Nút cho r: (r+1)/2 (vì 1,2,3,4 → 1,1,2,2 nút). Tổng = d/5 + (d%5+1)/2.
Code C++
#include <bits/stdc++.h>
using namespace std;
int solve(int a, int b) {
int d = abs(a - b);
return d/5 + (d%5 + 1)/2;
}
int main() {
int a=5,b=14;
cout << solve(a,b) << endl;
return 0;
}
Đầu vào / Đầu ra
Input: 5, 14
Output: 3