Инопланетянина с планеты элзика спросили: "сколько тебе лет? "он ответил: "если я проживу ещё половину того,что прожил,мне будет 99лет"сколько лет инопланетянину?
Ответы на вопрос:
// Реализация алгоритма Дейкстры (см. Вики)
// При вводе
// 6 2 3
// 255 3 7 255 255 2
// 3 255 255 255 255 255
// 7 255 255 3 1 255
// 255 255 3 255 1 2
// 255 255 1 1 255 255
// 2 255 255 2 255 255
// Выдает: 9
// Это и есть кратчайший путь
// Pascal ABC.NET
var
gr: Array of Array of Word;
best: Array of Word;
proceed: Array of Boolean;
n, s, f, last: Word;
fIn, fOut: text;
begin
//Init
Assign(fIn, 'INPUT.TXT');
Assign(fOut, 'OUTPUT.TXT');
Reset(fIn);
Rewrite(fOut);
Read(fIn, n, s, f);
Dec(s);
Dec(f);
SetLength(gr, n);
for var i := 0 to n-1 do
SetLength(gr[i], n);
best := ArrFill(n, Word.MaxValue);
SetLength(proceed, n);
//Input Gr
for var i := 0 to n-1 do
for var j := 0 to n-1 do begin
var buffer: Integer;
Read(fIn, buffer);
if buffer < 0 then
buffer := Integer.MaxValue;
gr[i, j] := Word(buffer);
end;
//Init S-node
best[s] := 0;
proceed[s] := true;
last := s;
//Algorithm
loop n-1 do begin
for var i := 0 to n-1 do
if not proceed[i] then
best[i] := Min(best[i], best[last] + gr[last][i]);
var minim := Word.MaxValue;
for var i := 0 to n-1 do
if (not proceed[i]) and (best[i] < minim) then begin
minim := best[i];
last := i;
end;
proceed[last] := true;
//PrintLn(best);
//PrintLn(last);
end;
//Output
if best[f] >= Word.MaxValue then
WriteLn(fOut, -1)
else
WriteLn(fOut, best[f]);
Close(fIn);
Close(fOut);
end.
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
katyaibadova01.02.2023 21:05
-
Cradzul22.01.2022 06:09
-
rassvet112310.07.2021 21:42
-
Pelmenchik10.12.2022 05:17
-
sasha191616.01.2020 21:18
-
ANDROI22323.02.2021 03:41
-
kadalsu419.09.2021 17:39
-
yanasmailik03.04.2021 04:07
-
lesheboker022804.01.2020 18:34
-
RumikoZun12.05.2021 16:43
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.