40 lines
765 B
Text
40 lines
765 B
Text
h := open('unixdict.txt', "r");
|
|
anagrams := {};
|
|
while not eof(h) loop
|
|
geta(h, word);
|
|
if word = om or word = "" then
|
|
continue;
|
|
end if;
|
|
sorted := insertion_sort(word);
|
|
anagrams{sorted} with:= word;
|
|
end loop;
|
|
|
|
max_size := 0;
|
|
max_words := {};
|
|
for words = anagrams{sorted} loop
|
|
size := #words;
|
|
if size > max_size then
|
|
max_size := size;
|
|
max_words := {words};
|
|
elseif size = max_size then
|
|
max_words with:= words;
|
|
end if;
|
|
end loop;
|
|
|
|
for w in max_words loop
|
|
print(w);
|
|
end loop;
|
|
|
|
-- GNU SETL has no built-in sort()
|
|
procedure insertion_sort(A);
|
|
for i in [2..#A] loop
|
|
v := A(i);
|
|
j := i-1;
|
|
while j >= 1 and A(j) > v loop
|
|
A(j+1) := A(j);
|
|
j := j - 1;
|
|
end loop;
|
|
A(j+1) := v;
|
|
end loop;
|
|
return A;
|
|
end procedure;
|