สมมติว่าเรามีตัวเลขสามจำนวน x, y และ z บนเว็บรีวิว มี x คนโหวตเพิ่ม y คนโหวตลด และอีก z คนจะโหวตแต่ไม่รู้จะโหวตเพิ่มหรือลด แต่ละคนโหวตได้สูงสุด 1 ครั้ง ถ้าโหวตเพิ่มมากกว่าลด ผลลัพธ์ "+" ถ้าลดมากกว่า "-" มิฉะนั้น "0" เนื่องจาก z คนที่ไม่แน่ชัด ผลอาจไม่แน่นอน (มีผลลัพธ์มากกว่า 1 แบบ) ผลไม่แน่นอน ('?') ก็ต่อเมื่อมีสถานการณ์โหวตของ z คนที่ต่างกัน 2 แบบ ต้องหาผลลัพธ์หรือรายงานความไม่แน่นอน
เช่น ถ้าอินพุตคือ x = 2; y = 0; z = 2 เอาต์พุตจะเป็น '?' เพราะมี 2 โหวตเพิ่ม ถ้าอีก 2 โหวตลดจะเป็น 0 ถ้าโหวตเพิ่มจะเป็น '+' ดังนั้นไม่แน่นอน
ขั้นตอนการแก้ปัญหา
if x > y + z: return "+" else if x + z < y: return "-" else if not z non-zero: return "0" otherwise: return "?"
ตัวอย่างโค้ด
#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) return "0";
else return "?";
}
int main() {
int x = 2;
int y = 0;
int z = 2;
cout << solve(x, y, z) << endl;
}
อินพุต
2, 0, 2
เอาต์พุต
?