मैं एक प्रतियोगी प्रोग्रामिंग (cp) से अपना उत्तर दूंगा परिप्रेक्ष्य , लेकिन यह अन्य डोमेन पर भी लागू होता है।
कई बार cp करते समय, अड़चनें काफी होती हैं।
उदाहरण के लिए : मेरे पास एक प्रश्न था, N, M, Q
जैसे कि एक चर1 ≤ N, M, Q < 10^5
।
मैं जो गलती कर रहा था, मुझे उसके आकार 10000 x 10000
में 2 डी पूर्णांक सरणी घोषित किया गया C++
और उसके साथ संघर्ष किया गयाSIGABRT
लगभग 2 दिनों के लिए Codechef में त्रुटि।
अब, यदि हम गणना करते हैं:
पूर्णांक का विशिष्ट आकार: 4 बाइट्स
हमारे सरणी में कोशिकाओं की संख्या: 10000 x 10000
कुल आकार (बाइट्स में): 400000000 बाइट्स = 4 * 10 ^ 8 tes 400 एमबी
ऐसे प्रश्नों के लिए आपके समाधान आपके पीसी पर काम करेंगे (हमेशा नहीं) क्योंकि यह इस आकार को वहन कर सकता है।
लेकिन कोडिंग साइट्स (ऑनलाइन जज) पर संसाधन कुछ केबी तक सीमित हैं।
इसलिए SIGABRT
त्रुटि और ऐसी अन्य त्रुटियां।
निष्कर्ष:
इस तरह के सवालों में, हमें किसी सरणी या वेक्टर या इस आकार के किसी अन्य डीएस की घोषणा नहीं करनी चाहिए, लेकिन हमारा कार्य हमारे एल्गोरिथ्म को इतना कुशल बनाना है कि यह उनके (डीएस) या कम मेमोरी के साथ काम करता है।
पुनश्च : इस त्रुटि के अन्य कारण हो सकते हैं; ऊपर उनमें से एक था।