I always have this thought. I'm doing it in Rust, so I check if there are negative numbers: if not, use usize. But I'm always terrified there will be an overflow somewhere.
If I were using Kotlin or Java, I might always use BigInteger just out of fear.
That’s a very interesting thought! I was thinking of writing my own Rust data type that would automatically upgrade to big integer, similarly to the int type in Python.
I lost twenty minutes to rewriting everything to deal with BigInts when I saw the data, and then switching it all back when I realised my error. I panicked too soon.
Considered sticking all the values in a set. Considered input. Coalesced the ranges instead. Ran both parts in 0.1 ms.
I'm actually looking forward a bit to 12 days this year. Previous AOC took a bit long to ramp up. Am expecting recursion imminently, dynamic programming next week, and complete head scratching bastardry to round out the week.
it all fit in int64 tho, so could be worse
I always have this thought. I'm doing it in Rust, so I check if there are negative numbers: if not, use
usize. But I'm always terrified there will be an overflow somewhere.If I were using Kotlin or Java, I might always use
BigIntegerjust out of fear.That’s a very interesting thought! I was thinking of writing my own Rust data type that would automatically upgrade to big integer, similarly to the int type in Python.
I am doing AOC in Kotlin. Longs are fine. I haven't encountered a puzzle that required ULong or BigInteger.
I lost twenty minutes to rewriting everything to deal with BigInts when I saw the data, and then switching it all back when I realised my error. I panicked too soon.
Really this. I fear the day the inputs become that large.
Considered sticking all the values in a set. Considered input. Coalesced the ranges instead. Ran both parts in 0.1 ms.
I'm actually looking forward a bit to 12 days this year. Previous AOC took a bit long to ramp up. Am expecting recursion imminently, dynamic programming next week, and complete head scratching bastardry to round out the week.