por que creas un nuevo array por cada ejecucion .. serian 3999 array nuevos ...
puedes ganar un poco de tiempo si lo declaras como estatico
esto lo aprendi de pateketrueke, no pense que fuera tanta la diferencia de tiempo de ejecucion declarando estatico el array.