Hướng dẫn giải của Tam giác (đề Đà Nẵng 2021)
Chỉ dùng lời giải này khi không có ý tưởng, và đừng copy-paste code từ lời giải này. Hãy tôn trọng người ra đề và người viết lời giải.
Nộp một lời giải chính thức trước khi tự giải là một hành động có thể bị ban.
Nộp một lời giải chính thức trước khi tự giải là một hành động có thể bị ban.
Hướng dẫn giải
Cho hai số nguyên dương a và b, đếm có bao nhiêu số nguyên dương c để a, b, c là độ dài ba cạnh của một tam giác.
Cách làm
Ba số là ba cạnh tam giác khi tổng hai cạnh bất kỳ lớn hơn cạnh còn lại. Với a và b cho trước, điều kiện trở thành ~|a - b| < c < a + b~.
Các số c nguyên thỏa mãn là các số từ |a - b| + 1 đến a + b - 1, nên số lượng là ~a + b - |a - b| - 1 = 2 \cdot \min(a, b) - 1~.
Chương trình chỉ cần lấy min của a và b rồi tính 2 · min - 1. Dùng long long vì a, b có thể đến 10^9 nên kết quả có thể vượt quá giới hạn của int.
#include <bits/stdc++.h>
using namespace std;
int main() {
freopen("tamgiac.inp", "r", stdin);
freopen("tamgiac.out", "w", stdout);
long long a, b;
cin >> a >> b;
// Ba so a, b, c la 3 canh tam giac khi |a - b| < c < a + b
// So cac c nguyen duong thoa man la 2 * min(a, b) - 1
long long m = min(a, b);
cout << 2 * m - 1 << "\n";
return 0;
}
Bình luận