Mô tả bài toán
Có x người upvote, y người downvote, z người chưa quyết định (có thể up hoặc down). Kết quả: '+' nếu up>down, '-' nếu down>up, '0' nếu bằng. Nếu z khiến kết quả có thể khác nhau → '?'.
Ví dụ
x=2,y=0,z=2 → Có thể up=4,down=0 → '+'; hoặc up=2,down=2 → '0' → không chắc chắn → '?'.
Thuật toán
- Nếu x > y+z → chắc chắn '+'.
- Nếu x+z < y → chắc chắn '-'.
- Nếu z==0 → '0' (vì x==y).
- Còn lại → '?'.
Code C++
#include <bits/stdc++.h>
using namespace std;
string solve(int x, int y, int z) {
if (x > y + z) return "+";
else if (x + z < y) return "-";
else if (z == 0) return "0";
else return "?";
}
int main() {
int x=2,y=0,z=2;
cout << solve(x,y,z) << endl;
return 0;
}
Đầu vào / Đầu ra
Input: 2, 0, 2
Output: ?