मान लीजिए, a, b, और c आयामों के कई क्यूब्स हैं, और उनका उपयोग करके axbxc आयाम का एक नया बॉक्स बनाया जाता है। a, b, और c pairwise को-प्राइम हैं; gcd(a, b) = gcd(b,c) = gcd(c, a) = 1। हमें एक सिंगल स्लाइस के साथ बॉक्स को दो टुकड़ों में काटना है जैसा कि चित्र में दिखाया गया है। हमें यह पता करना है कि यदि बॉक्स को इस तरह काटा जाता है, तो कितने क्यूब दो टुकड़ों में कट जाते हैं। हमें एक सरणी प्रदान की जाती है जिसमें संभावित तीन आयाम होते हैं, और हमें उससे अपना उत्तर ढूंढना है।

कट इस तरह किया जाता है कि यह P, Q, और R वर्टेक्स से गुजरने वाला एक प्लेन है।
इसलिए, यदि इनपुट है: n = 3, input_array = [[1, 2, 3], [4, 2, 5], [6, 8, 2]], तो आउटपुट [5, 18, 37] होगा।
3 अलग-अलग इंस्टेंस दिए गए हैं और हमें कटे हुए क्यूब्स की संख्या ढूंढनी है। यदि क्यूब्स को चित्र में दिखाए गए तरीके से काटा जाता है; तो क्रमशः 5, 18, और 37 क्यूब कटते हैं।
हल करने के चरण
- output := एक नई सूची
- i को 0 से n तक के लिए:
- a := input_array[i][0]
- b := input_array[i][1]
- c := input_array[i][2]
- val := floor((a * b + a * c + b * c - 1) / 2) mod 1000000007
- output के अंत में val डालें
- output वापस करें
उदाहरण
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]]))
इनपुट
3, [[1, 2, 3], [4, 2, 5], [6, 8, 2]]
आउटपुट
[5, 18, 37]