-
Помогите, пожалуйста решить слудующую задачу (Pascal, C++) — вопрос жизни и смерти!
Джин — путешествующий коммерсант. Он ходит от города к городу, продавая и покупая товары. Страна, по какой он ходит состоит из С городов. Начав свой путь из города S, Джин должен сделать T междугородних переходов. Ему разрешено посещать города, в каких он уже был. Свой путь он должен закончить на одном из E городов. Известна прибыль, какую Джин получает, совершив переход из i-того города в j-е. Необходимо вычислить максимальную прибыль, какой он может получить, пройдя весь путь.
Вход. Первый ряд состоит из 4-х чисел: кол-во городов С (2<=C<=100), номер стартового города S (1<=S<=100), число финальных городов E (1<=E<=100) и кол-во переходов T (1<=T<=1000). Следующие С строк имеют по С чисел. j-е число i-ой строки означает прибыль, которую получить Джин, совершив переход с i-ого города в j-е. Так как Джин не может идти с i-ого города в i-й, то i-е число i-ой строки равняется 0. Дальше — в одной строке записаны E номеров городов, в которых коммерсант может завершить путь.
У меня ко-что получалось, но с прокладыванием пути — полный завал :(
Буду благодарен всем за помощь.
-
Поднимаем конспекты по вычметодам или дискретке и внимательно читаем тему "алгоритм Дейкстры"
|