program ideone;
type
au32 = array of uint32;
function rev(n: uint32): uint32;
function aux(acc, m: uint32): uint32;
begin
if m = 0 then aux := acc else aux := aux(acc * 10 + m mod 10, m div 10)
end;
begin
rev := aux(0, n)
end;
function f(n: uint32): au32;
function aux(a, b: uint32): au32;
begin
case shortint(a = rev(a)) * 10 + shortint(b = rev(b)) of
11 : aux := au32.create(a, b);
10 : aux := au32.create(a);
01 : aux := au32.create(b);
00 : aux := aux(a - 1, b + 1);
end;
end;
begin
if n = rev(n) then f := au32.create(n) else f := aux(n - 1, n + 1)
end;
procedure g(n: uint32);
var
m: uint32;
begin
writeln('入力: ', n);
for m in f(n) do writeln('出力: ', m);
writeln
end;
begin
g(0);g(17);g(100)
end.
cHJvZ3JhbSBpZGVvbmU7CnR5cGUKICAgYXUzMiA9IGFycmF5IG9mIHVpbnQzMjsKZnVuY3Rpb24gcmV2KG46IHVpbnQzMik6IHVpbnQzMjsKICAgZnVuY3Rpb24gYXV4KGFjYywgbTogdWludDMyKTogdWludDMyOwogICBiZWdpbgogICAgICBpZiBtID0gMCB0aGVuIGF1eCA6PSBhY2MgZWxzZSBhdXggOj0gYXV4KGFjYyAqIDEwICsgbSBtb2QgMTAsIG0gZGl2IDEwKQogICBlbmQ7CmJlZ2luCiAgIHJldiA6PSBhdXgoMCwgbikKZW5kOwpmdW5jdGlvbiBmKG46IHVpbnQzMik6IGF1MzI7CiAgIGZ1bmN0aW9uIGF1eChhLCBiOiB1aW50MzIpOiBhdTMyOwogICBiZWdpbgogICAgICBjYXNlIHNob3J0aW50KGEgPSByZXYoYSkpICogMTAgKyBzaG9ydGludChiID0gcmV2KGIpKSBvZgogICAgICAgIDExIDogYXV4IDo9IGF1MzIuY3JlYXRlKGEsIGIpOwogICAgICAgIDEwIDogYXV4IDo9IGF1MzIuY3JlYXRlKGEpOwogICAgICAgIDAxIDogYXV4IDo9IGF1MzIuY3JlYXRlKGIpOwogICAgICAgIDAwIDogYXV4IDo9IGF1eChhIC0gMSwgYiArIDEpOwogICAgICBlbmQ7CiAgIGVuZDsKYmVnaW4KICAgaWYgbiA9IHJldihuKSB0aGVuIGYgOj0gYXUzMi5jcmVhdGUobikgZWxzZSBmIDo9IGF1eChuIC0gMSwgbiArIDEpCmVuZDsKcHJvY2VkdXJlIGcobjogdWludDMyKTsKdmFyCiAgIG06IHVpbnQzMjsKYmVnaW4KICAgd3JpdGVsbign5YWl5YqbOiAnLCBuKTsKICAgZm9yIG0gaW4gZihuKSBkbyB3cml0ZWxuKCflh7rlips6ICcsIG0pOwogICB3cml0ZWxuCmVuZDsKYmVnaW4KICAgZygwKTtnKDE3KTtnKDEwMCkKZW5kLg==