Коротко алгоритм решения задачи следующий:
Демонстрационный пример решения задачи можно посмотреть на стенде (логин: "user", без пароля) или скачать архивом.