Форум » Обработка числовых последовательностей » Задание 48 c27 » Ответить

Задание 48 c27

elezbar: Здравствуйте, мне хочется узнать, будет ли программа написанная мной более эффективна, чем те, которые представлены в решении, т.к. я не использую массив и использую только один цикл. var score, score1, score2, score3, n, i: longint; name, name1, name2, name3: string; begin readln(n); for i := 1 to n do begin readln(score, name); if score > score1 then begin if name = name1 then begin score1 := score; name1 := name; end else if name = name2 then begin score2 := score1; name2 := name1; score1 := score; name1 := name; end else if (name <> name1) and (name <> name2) then begin score3 := score2; name3 := name2; score2 := score1; name2 := name1; name1 := name; score1 := score; end; end; if (score > score2) and (score <= score1) then begin if name = name2 then begin score2 := score; name2 := name; end else if (name <> name2) and (name <> name1) then begin score3 := score2; name3 := name2; score2 := score; name2 := name; end; end; if (score > score3) and (score <= score2) then if (name <> name1) and (name <> name2) then begin score3 := score; name3 := name; end; end; writeln('1 место', ' ', score1, ' ', name1); writeln('2 место', ' ', score2, ' ', name2); writeln('3 место', ' ', score3, ' ', name3); end.

Ответов - 1

Поляков: elezbar пишет: Здравствуйте, мне хочется узнать, будет ли программа написанная мной более эффективна, чем те, которые представлены в решении, т.к. я не использую массив и использую только один цикл. Нет, не будет. Вы заменили массив из 3-х элементов на отдельные переменные, эффективность не повысилась, а возможности запутаться стало больше. По поводу цикла - и в приведенных решениях, и в вашем - один цикл из N шагов, остальные не зависят от N, то есть не влияют на оценку сложности алгоритма.



полная версия страницы