Saya akan memberikan jawaban saya dari perspektif pemrograman kompetitif (cp) , tetapi itu berlaku untuk domain lain juga.
Banyak kali saat melakukan cp, kendala cukup besar.
Sebagai contoh : Saya punya pertanyaan dengan variabel N, M, Qseperti itu 1 ≤ N, M, Q < 10^5.
Kesalahan saya membuat adalah saya menyatakan 2D array integer dari ukuran 10000 x 10000di C++dan berjuang denganSIGABRT kesalahan pada Codechef selama hampir 2 hari.
Sekarang, jika kita menghitung:
Ukuran khas bilangan bulat: 4 byte
Jumlah sel dalam array kami: 10.000 x 10.000
Ukuran total (dalam byte): 400000000 byte = 4 * 10 ^ 8 ≈ 400 MB
Solusi Anda untuk pertanyaan-pertanyaan seperti itu akan bekerja pada PC Anda (tidak selalu) karena mampu membayar ukuran ini.
Tetapi sumber daya di situs pengkodean (juri online) terbatas pada beberapa KB.
Oleh karena itu, SIGABRTkesalahan dan kesalahan lainnya.
Kesimpulan:
Dalam pertanyaan seperti itu, kita tidak boleh mendeklarasikan array atau vektor atau DS lain dari ukuran ini, tetapi tugas kita adalah membuat algoritma kita sedemikian efisien sehingga berfungsi tanpa mereka (DS) atau dengan memori lebih sedikit.
PS : Mungkin ada alasan lain untuk kesalahan ini; di atas adalah salah satunya.