Untitled
user_1066898782
pascal
4 years ago
687 B
34
Indexable
var n, i, k, a, b: Integer;
s:string;
procedure Swap(var X, Y: char);
var
Temp: char;
begin
Temp := X; X := Y; Y := Temp;
end;
begin
readln(n);
for i:=1 to n div 2 do s:=s+'0';
for i:=1 to n div 2 do s:=s+'1';
repeat
writeln(s);
i:=n-1;
while (i>0) and (s[i]>=s[i + 1]) do dec(i);
if i>0 then
begin
k:=n;
while s[k] <= s[i] do dec(k);
Swap(s[k],s[i]);
a:=i+1; b:=n;
while a<b do
begin
Swap(s[a],s[b]);
Inc(a);
Dec(b);
end;
end;
until i=0;
end.Editor is loading...