Я думаю, что есть проблема с тем, как вы обрабатываете мощности в вершинах.Обычный способ сделать это - разделить вершину v на две вершины v 'и v' 'и добавить ребро между v' и v '' с емкостью вершины.Все ребра, связанные с v (т. Е. Для которых v является пунктом назначения), должны быть связаны с v 'в новом графе, а все ребра из v должны начинаться с v' 'в новом графе.
Вы, вероятно, знаете, что когдаты давай потоку xaby 3 добавляешь в емкость обратные ребра.В этом случае вы добавите ребра ax 3, ba 3, yb 3. Если вы сделаете представление графа, как я описал, вы увидите, что есть дополнительный поток, который вы можете использовать в первом случае (я думаю, что он может проходить через xadcby,но не проверяли его).
Выбор кратчайшего пути не должен изменить ответ - как я уже упоминал в своем комментарии, мы выбираем только кратчайший путь на каждом шаге, чтобы избежать плохих случаев, когда производительность снижается, ноответ всегда один и тот же.
Надеюсь, этот ответ поможет.