ধরুন আমরা একটি 2D সমতলে দুটি রেকটিলিনিয়ার আয়তক্ষেত্র দ্বারা আচ্ছাদিত মোট ক্ষেত্রফল বের করতে চাই। এখানে প্রতিটি আয়তক্ষেত্রকে তার নীচের বাম কোণে এবং উপরের ডানদিকের কোণ দ্বারা সংজ্ঞায়িত করা হয়েছে যেমন চিত্রে দেখানো হয়েছে।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- প্রস্থ_1 :=|C-A|, height_1 :=|D-B|
- প্রস্থ_2 :=|G-E|, height_2 :=|H-F|
- ক্ষেত্রফল :=width_1*height_1 + width_2*height_2
- যদি (GC) বা (F>D) বা (H
- রিটার্ন এলাকা
- p :=সর্বাধিক A, E
- q :=সর্বোচ্চ B, F
- r :=সর্বনিম্ন C, G
- s :=ন্যূনতম D, H
- width_3 :=|r-p|
- উচ্চতা_3 :=|s-q|
- রিটার্ন এলাকা - (width_3*height_3)
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
def solve(A, B, C, D, E, F, G, H): width_1 = abs(C-A) height_1 = abs(D-B) width_2 = abs(G-E) height_2 = abs(H-F) area = width_1*height_1 + width_2*height_2 if (G<A) or (E>C) or (F>D) or (H<B): return area else: p = max(A,E) q = max(B,F) r = min(C,G) s = min(D,H) width_3 = abs(r-p) height_3 = abs(s-q) return area - (width_3*height_3) A = -3 B = 0 C = 3 D = 4 E = 0 F = -1 G = 9 H = 2 print(solve(A, B, C, D, E, F, G, H))
ইনপুট
-3, 0, 3, 4, 0, -1, 9, 2
আউটপুট
45