Алгоритм, описанный по ссылке, далек от оптимального.