Нужно как-нибудь минимизировать хождения по графу. Хотелось бы вообще обойтись одним проходом. И еще мы не знаем наперед сколько там вообще видов фруктов. И еще есть большая вероятность, что алгоритм будет вызываться несколько раз с одним и тем же графом, но другой начальной вершиной... Спасибо за подсказку, пойду вспоминать дискретную математику.