Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- uses crt;
- var s, x: string;
- free: Array[1..100] of boolean;
- a: Array[1..100] of String;
- n, l, k: integer;
- procedure tri(i: integer);
- var j: integer;
- begin
- for j:=1 to length(s) do
- begin
- if free[j] then continue;
- x:=x+s[j];
- free[j]:=true;
- if i = length(s) then
- begin
- Inc(n);
- a[n]:=x;
- end
- else tri(i+1);
- free[j]:=false;
- delete(x, length(x), 1);
- end;
- end;
- begin
- readln(s);
- x:='';
- n:=0;
- fillchar(free, sizeof(free), false);
- tri(1);
- for l:=1 to n - 1 do
- for k:=l + 1 to n do
- if a[l] > a[k] then
- begin
- s:=a[l];
- a[l]:=a[k];
- a[k]:=s;
- end;
- s:=a[1];
- writeln(s);
- for l:=2 to n do
- begin
- if a[l] <> s then writeln(a[l]);
- s:=a[l];
- end;
- readln;
- end.
Advertisement
Add Comment
Please, Sign In to add comment