Floyd's alg.