Gửi bài giải
Điểm:
1,00 (OI)
Giới hạn thời gian:
0.005s
Giới hạn bộ nhớ:
256M
Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Go, Java, Pascal, Perl, PHP, Python, Ruby, Rust, Scratch, Swift
Bạn có một hình hộp chữ nhật có kích thước nguyên và biết được diện tích của 3 mặt có chung 1 đỉnh. Nhiệm vụ của bạn là tính tổng độ dài tất cả các cạnh của hình hộp chữ nhật này.
Input
- Gồm ~1~ dòng duy nhất chưa ~3~ số nguyên dương ~S_1, S_2~ và ~S_3 (1 \le S_1, S_2, S_3 \le 10^{18})~.
Output
- Ghi ~1~ số nguyên dương là tổng độ dài các cạnh của hình hộp chữ nhật trên sau khi chia dư cho ~10^9 + 7~.
Sample
Input #1
1 1 1
Output #1
12
Input #2
4 6 6
Output #2
28
Hint
Giải thích #1: Ba mặt đều có diện tích là ~1~ nên tất cả các cạnh sẽ có độ dài là ~1~, mà hình hộp chữ nhật có tổng cộng ~12~ cạnh, suy ra kết quả là ~12~.
Bình luận
Ý tưởng: Ta có s1, s2, s3 lần lượt là diện tích của của các mặt phẳng có chung đỉnh Giả sử: (a, b, h chưa biết)
s1 * s2 * s3 = a^2 * b^2 * h^2 => V = sqrt(a^2 * b^2 * h^2) = sqrt(s1 * s2 * s3)
để suy ra 3 cạnh ta lấy V chia lần lượt cho các s1, s2, s3. Vì V bằng diện tích 1 mặt nhân với chiều cao mà :>.
=> V / s1 = sqrt((s2 * s3) / s1) = a
=> V / s2 = sqrt((s1 * s3) / s2) = b
=> V / s3 = sqrt((s1 * s2) / s3) = h
Kết quả sẽ là 4 * (a % 1000000007 + b % 1000000007 + h % 1000000007) % 1000000007.
Thực sự cái khó của bài này nằm ở 3 điều
Pascal thì sao ạ
Sr bạn mình không code pas nên không rõ. Nếu đc bạn nên học C++, python tại 2 ngôn ngữ này phổ biến và rất mạnh trong lập trình thi đấu.
Note: Do bộ số lớn, cho nên nếu s1 * s2 * s3 rồi mới lấy căn sẽ rất lớn. Vì vậy, cần lấy căn của từng cái 1 (căn 1 tích = tích các căn): sqrt(s1) * sqrt(s2) * sqrt(s3)
tương tự với đoạn tính V/s1, V/s2, V/s3 nhé tách ra (thương các căn = căn các thương)
ll mod = 1000000007; ll s1, s2, s3; cin >> s1 >> s2 >> s3; double a = ((sqrtl(s1) * sqrtl(s2)) / sqrtl(s3)); double b = ((sqrtl(s1) * sqrtl(s3)) / sqrtl(s2)); double c = ((sqrtl(s2) * sqrtl(s3)) / sqrtl(s1)); cout << (4 * (ll(a) % mod + ll(b) % mod + ll(c) % mod)) % mod;
ai cho e xin test 22 voi a
a thoi e lam ra roi a
giúp mik với bạn lm mãi ko ra
đồng cảnh ngộ ;-;