не укладывался по времени выполнения, оптимизировал метод getPolygonStartingPoint