Giả sử chúng ta có ba số a, b và c. Có ba que có độ dài a, b và c. Trong một phút, chúng ta có thể chọn một que tùy ý và tăng độ dài của nó lên 1 cm, nhưng không thể gãy que. Chúng ta phải đếm số phút tối thiểu cần để tăng độ dài của chúng và có thể tạo thành một tam giác.
Ví dụ, nếu đầu vào là a = 2; b = 3; c = 5, thì đầu ra sẽ là 1, vì bằng cách tăng a hoặc b lên 1, ta có thể tạo tam giác (a + b) > c. Vì vậy một phút là đủ.
Các bước
Để giải quyết bài toán này, chúng ta sẽ làm theo các bước sau:
Định nghĩa mảng A = { a, b, c } sắp xếp mảng A return maximum của (A[2] - A[1] - A[0] + 1) và 0Ví dụ
Xem 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