Init;{предполагается,
Init;{предполагается, что данные корректны и во входном файле они организованы так, как представлены в примере из формулировки задачи}
....
begin
.....
readln(N);{число жителей}
for i:=1 to N do with A[i] do begin man:=i; part:=[i]; end;{каждый житель представляет свою партию}
for i:=1 to N do begin
while Not eoln do begin read(t);A[t].part:=A[t].part+[i];{житель t представляет партию с номером i, или партия с номером i представлена жителем t}
end;
readln;
end;
for i:=1 to N do A[i].number:=Num(A[i].part);
....
end;
Следующим очевидным шагом является сортировка массива А по значению поля number. Становится понятным и необходимость ввода поля man в структуру записи - после сортировки номер элемента массива А не соответствует номеру жителя острова.
Пока не будем задумываться о том, как сократить перебор. Попытаемся набросать общую схему. Используемые переменные достаточно очевидны, они описываются в процессе их ввода, присвоение начальных значений
Индекс
Элементарные функции
Линейные уравнения
Нелинейные уравнения
Случайные числа