Прикинул. В общем, вам нужно где-то раздобыть списки маршрутов и вытащить откуда-нибудь карту метро. После чего вам понадобится построить полный граф стоимостей перемещения с каждой остановки на каждую. Это делается один раз. Потом, когда распределяете посылки, надо будет найти опять же кратчайшие маршруты между точками следования, используя предворительно подготовленный граф цен перемещений. И уже по этому графу точка-точка делать полный перебор. Ресурсов сожрать много не должно, да и у нас не олимпиада, когда надо в секунду уложиться. Как-то вот так.