Primero hay que reconocer que es un problema de mov.unif.acelerado (m.u.a.). Fíjate que es lo mismo empezar en velocidad cero y acelerar a lo largo de 100m y terminar con velocidad vf, que empezar con velocidad vf y frenar (desacelerar) hasta v=0 a lo largo de los mismos 100m. Así que puedo usar la misma fórmula.
d = (1/2) a t^2
Así que t = raiz_cuadr (2d/a) = raíz ( 2*100m/(20m/s^2) ) = raíz (10 s^2 ) = 3.1623s
vf = a t = (20m/s^2) * (3.162s) = 63.246m/s