मान लीजिए हम 2D तल में दो रेक्टिलिनियर आयतों द्वारा कवर किए गए कुल क्षेत्रफल को खोजना चाहते हैं। यहां प्रत्येक आयत को उसके निचले बाएं कोने और ऊपरी दाएं कोने द्वारा परिभाषित किया गया है जैसा कि चित्र में दिखाया गया है।

इसे हल करने के लिए, हम निम्न चरणों का पालन करेंगे:
- width_1 := |C-A|, height_1 := |D-B|
- width_2 := |G-E|, height_2 := |H-F|
- area := width_1*height_1 + width_2*height_2
- यदि (G<A) या (E>C) या (F>D) या (H<B), तो
- area लौटाएं
- अन्यथा,
- p := A, E का अधिकतम
- q := B, F का अधिकतम
- r := C, G का न्यूनतम
- s := D, H का न्यूनतम
- width_3 := |r-p|
- height_3 := |s-q|
- area - (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