On Friday, 24 August 2012 at 19:32:53 UTC, maarten van damme
wrote:
I've distiled what I understood from your source and the
resulting
executable managed to solve the impossible one in 27 seconds
while
your source takes 41 seconds.
I've probably violated every D guideline concerning the use of
static,
pure, nothrow,... but it works perfectly :)
Nice job! I looked at it quickly, but it seems like a good
solution.
It does fail to compile on dpaste, I have no idea why. It does
compile
on my machine though...
http://dpaste.dzfl.pl/8a2aef5b
It's because dpaste is compiling for 64-bit and you're compiling
it for 32-bit. length is a size_t which is uint in 32-bit
environments and ulong in 64-bit. A long/ulong isn't implicitly
convertable to int/uint in D. On line 119, either you need to use
an explicit cast or you can change the type of curLength to long,
ulong, or size_t.
In this case, since you expect curLength to be fairly small (much
smaller than an int), I'd just stick a cast in there. Though, in
general, changing the type to a size_t is better.