Giả sử chúng ta có ba số a, b và c. Có ba que tính có độ dài là a, b và c. Trong một phút, chúng ta có thể chọn một que tùy ý và tăng chiều dài của nó thêm 1 cm nhưng không được bẻ que. Chúng ta phải đếm số phút tối thiểu cần thiết để tăng độ dài của chúng và chúng ta có thể tạo thành một tam giác với chúng.
Vì vậy, nếu đầu vào giống như a =2; b =3; c =5, thì đầu ra sẽ là 1, bởi vì bằng cách tăng bất kỳ một trong số a hoặc b lên 1, chúng ta có thể tạo ra một tam giác (a + b)> c. Vì vậy, một phút là đủ.
Các bước
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
Define an array A = { a, b, c } sort the array A return maximum of (A[2] - A[1] - A[0] + 1) and 0
Ví dụ
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
#include <bits/stdc++.h> using namespace std; int solve(int a, int b, int c) { vector<int> A = { a, b, c }; sort(A.begin(), A.end()); return max(A[2] - A[1] - A[0] + 1, 0); } int main() { int a = 2; int b = 3; int c = 5; cout << solve(a, b, c) << endl; }
Đầu vào
2, 3, 5
Đầu ra
1