Любые мыслимые проверки код проходит. Валидатор постоянно ругается на 3-е условие. Логично, что если убрать +1 в 26-й строке, то результаты станут инвертными. Но в любом случае валидатор режет решение. Опять тот случай, когда надо написать именно так, как ожидлает валидатор?