Giả sử có các khối lập phương kích thước a, b, c tạo thành hộp mới kích thước a x b x c. a, b, c nguyên tố cùng nhau từng cặp: gcd(a,b)=gcd(b,c)=gcd(c,a)=1. Cắt hộp thành hai mảnh bằng một mặt phẳng qua các đỉnh P, Q, R. Tìm số khối lập phương bị cắt thành hai mảnh.
Ví dụ: n = 3, input_array = [[1,2,3], [4,2,5], [6,8,2]], kết quả [5, 18, 37].
Giải thuật
output := []- For
itừ 0 đếnn-1:a, b, c := input_array[i][0], [1], [2]val := floor((a*b + a*c + b*c - 1) / 2) % 1000000007- Thêm
valvàooutput
- Trả về
output
Ví dụ
from math import ceil
def solve(n, input_array):
output = []
for i in range(n):
a, b, c = input_array[i][0], input_array[i][1], input_array[i][2]
val = ((a * b + a * c + b * c - 1) // 2 % 1000000007)
output.append(val)
return output
print(solve(3, [[1, 2, 3], [4, 2, 5], [6, 8, 2]]))
Input
3, [[1, 2, 3], [4, 2, 5], [6, 8, 2]]
Output
[5, 18, 37]