คำอธิบายปัญหา
สมมติว่าเรามีตัวเลข 3 ตัวคือ A, B และ C พิจารณาเกม: มีแผ่นตัวเลข 3 แผ่น แต่ละแผ่นมีเลข 1 ถึง 9 และแผ่นเครื่องหมาย 1 แผ่นมีเครื่องหมาย '+' ผู้เล่นต้องจัดเรียงแผ่นทั้ง 4 ให้เป็นสูตร X+Y จากซ้ายไปขวา เงินออมจะเท่ากับค่าของสูตรนั้น ต้องการหาเงินออมสูงสุดที่เป็นไปได้
ตัวอย่าง: A = 1; B = 5; C = 2 ผลลัพธ์คือ 53 เพราะจัดเป็น 52+1 ซึ่งให้ค่าสูงสุด
ขั้นตอนการแก้ปัญหา
กำหนดอาร์เรย์ V ด้วย A, B, C เรียงลำดับ V ans := (V[2] * 10) + V[1] + V[0] คืนค่า ans
ตัวอย่างโค้ด C++
#include <bits/stdc++.h>
using namespace std;
int solve(int A, int B, int C){
vector<int> V = { A, B, C };
sort(V.begin(), V.end());
int ans = (V[2] * 10) + V[1] + V[0];
return ans;
}
int main(){
int A = 1;
int B = 5;
int C = 2;
cout << solve(A, B, C) << endl;
}
อินพุต
1, 5, 2
เอาต์พุต
53