Дано натуральное число, в котором все цифры различны. Определить:
а) порядковый номер его максимальной цифры, считая номера:
- от конца числа;
- от начала числа;
б) порядковый номер его минимальной цифры, считая номера:
- от конца числа;
- от начала числа.
Примечание. Во всех случаях использовать только один оператор цикла.
Ответы на вопрос:
// Реализация алгоритма Дейкстры (см. Вики)
// При вводе
// 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
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
Даниилfire24.01.2022 17:26
-
baha2001zzz14.01.2023 05:14
-
puremoorning30.05.2023 00:52
-
MiliitVel103.05.2023 19:36
-
CatolizatoRRR25.01.2021 09:47
-
Акали18.05.2021 13:12
-
maxim951024.01.2021 16:52
-
Karina1111111111509.01.2020 05:05
-
viktoriaprm28.04.2021 03:03
-
medinceva24674qq05.08.2021 14:33
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.