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, Q
seperti itu 1 ≤ N, M, Q < 10^5
.
Kesalahan saya membuat adalah saya menyatakan 2D array integer dari ukuran 10000 x 10000
di 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, SIGABRT
kesalahan 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.