No hay error en el código del proyecto a revisar. Las condiciones están bien establecidas y el código funciona perfectamente, lo único que se podría corregir sería una ambigüedad en dos de las reglas
por Matías