-
Notifications
You must be signed in to change notification settings - Fork 532
Open
Description
cpbook-code/ch9/SparseTable.cpp
Lines 17 to 22 in 26fb737
| P2.assign(L2_n, 0); | |
| L2.assign(1<<L2_n, 0); | |
| for (int i = 0; i <= L2_n; ++i) { | |
| P2[i] = (1<<i); // to speed up 2^i | |
| L2[(1<<i)] = i; // to speed up log_2(i) | |
| } |
In line 17 we assign P2 a size of L2_n, implying we have the range [0,L2_n) available. Then we iterate i through [0,L2_n] and assign P2[i]. This leads to a problem when i = L2_n. This is a really hard to catch bug, as C++ usually allocate more size than necessary, but this very mistake has got me a runtime error in problem https://www.codechef.com/problems/TALCA?tab=statement
Metadata
Metadata
Assignees
Labels
No labels