Для решения этой задачи на Паскале, можно использовать простой алгоритм:
1. Объявляем переменные maxScore и maxIndex, устанавливаем их значения равными 0.
2. Считываем число участников N.
3. Создаем цикл, который будет выполняться N раз.
4. Внутри цикла считываем баллы очередного участника a[i].
5. Проверяем условие: если a[i] больше maxScore или a[i] равно maxScore, но i меньше maxIndex, то обновляем значения maxScore и maxIndex.
6. По завершении цикла выводим значение переменной maxIndex.
Ниже приведен код на Паскале, реализующий данный алгоритм:
“`
program MaxScore;
var
N, i, maxScore, maxIndex, score: integer;
begin
maxScore := 0;
maxIndex := 0;
readln(N);
for i := 1 to N do
begin
readln(score);
if score > maxScore then
begin
maxScore := score;
maxIndex := i;
end
else if (score = maxScore) and (i < maxIndex) then
begin
maxIndex := i;
end;
end;
writeln(maxIndex);
end.
```
Программа сначала объявляет переменные для хранения максимального балла (maxScore) и номера участника с максимальным баллом (maxIndex). Затем считывает число участников N.
Далее следует цикл, выполняющийся N раз. Внутри цикла считывается балл очередного участника и проверяется условие: если балл больше текущего максимального балла (maxScore), то обновляем значения maxScore и maxIndex. Если балл равен текущему максимальному, но номер участника меньше текущего maxIndex, также обновляем maxIndex.
По окончании цикла выводим значение maxIndex - номер участника с максимальным баллом.