HOLA!!!
Si, podes acelerar mucho el proceso, usando un array de Booleans en vez de la cadena de 0 y 1 asi te ahorras el MID que es uno de tus puntos criticos de velocidad y la concatenacion, el split y demas, inclusive aunque mantengas ese array en tandem con los que ya tenes deberia ir mucho mas rapido, hacelo y me decis.
GRACIAS POR LEER!!!