program main;
type TByte=array[0..9] of Byte;
type TArray=array[1..10000] of Integer;
{Заполняет массив значениями value}
procedure FillArray(A:TByte; size:Integer; value:Integer);
var i:Integer;
begin
for i:=1 to size do
A[i]:=value;
end;
{Тестирует число по условию задачи.
0 - все цифры разные (удалить число), 1 - есть одинаковые (пропустить),
2 - дублировать. Каждый элемент массива index[0..9] содержит количество
соответствующих цифр в числе, например index[3]=5 - в числе пять троек}
function TestNumber(n:Integer):Integer;
var index:TByte;
status:Byte;
i:Integer;
temp:real;
begin
status:=0;
TestNumber:=status;
FillArray(index,High(index)-Low(index),0);
while n>0 do
begin
inc(index[n mod 10]);
n:=n div 10;
end;
for i:=0 to 9 do
if index[i]>1 then
begin
status:=1;
TestNumber:=status;
break;
end;
if (status=0) then exit;
temp:=1;
for i:=1 to 9 do
if index[i]>0 then
temp:=temp*exp(ln(i)*index[i]);
if (((trunc(temp)+1) mod 14)=0) then
TestNumber:=2;
end;
{Удаление числа из массива}
procedure delete(var A:TArray; var n:Integer);
var k,m:Integer;
begin
k:=1;
while k<=n do
if TestNumber(A[k])=0 then
begin
for m:=k to n-1 do
A[m]:=A[m+1];
n:=n-1;
end
else
k:=k+1;
end;
procedure DreadMagic(var A:TArray; var B:TArray; var n:Integer);
var k,i:Integer;
begin
k:=0;
for i:=1 to n do
case TestNumber(A[i]) of
0: ; {do nothing}
1: begin
k:=k+1;
B[k]:=A[i];
end;
2: begin
k:=k+1; B[k]:=A[i];
k:=k+1; B[k]:=A[i];
end;
end;
n:=k;
end;
procedure Input(var A:TArray; var n:Integer);
var i:Integer;
begin
write('Enter n: ');
read(n);
writeln('Enter ',n, ' elements:');
for i:=1 to n do
read(A[i]);
end;
procedure Output(A:TArray; n:Integer);
var i:Integer;
begin
for i:=1 to n do
write(A[i]:6);
end;
const T:array[1..7] of Integer=(987,4562,1123,59234,55768,876,1172);
var A:TArray;
B:TArray;
i,n:Integer;
begin
n:=0;
{for i:=1 to n do
A[i]:=T[i];}
Input(A,n);
DreadMagic(A,B,n);
Output(B,n);
end.
ICBwcm9ncmFtIG1haW47CiAgCiAgdHlwZSBUQnl0ZT1hcnJheVswLi45XSBvZiBCeXRlOwogIHR5cGUgVEFycmF5PWFycmF5WzEuLjEwMDAwXSBvZiBJbnRlZ2VyOwogIAogIHvQl9Cw0L/QvtC70L3Rj9C10YIg0LzQsNGB0YHQuNCyINC30L3QsNGH0LXQvdC40Y/QvNC4IHZhbHVlfQogIHByb2NlZHVyZSBGaWxsQXJyYXkoQTpUQnl0ZTsgc2l6ZTpJbnRlZ2VyOyB2YWx1ZTpJbnRlZ2VyKTsKICB2YXIgaTpJbnRlZ2VyOwogIGJlZ2luCiAgICBmb3IgaTo9MSB0byBzaXplIGRvCiAgICAgIEFbaV06PXZhbHVlOwogIGVuZDsKICAKICB70KLQtdGB0YLQuNGA0YPQtdGCINGH0LjRgdC70L4g0L/QviDRg9GB0LvQvtCy0LjRjiDQt9Cw0LTQsNGH0LguCiAgMCAtINCy0YHQtSDRhtC40YTRgNGLINGA0LDQt9C90YvQtSAo0YPQtNCw0LvQuNGC0Ywg0YfQuNGB0LvQviksIDEgLSDQtdGB0YLRjCDQvtC00LjQvdCw0LrQvtCy0YvQtSAo0L/RgNC+0L/Rg9GB0YLQuNGC0YwpLCAKICAyIC0g0LTRg9Cx0LvQuNGA0L7QstCw0YLRjC4g0JrQsNC20LTRi9C5INGN0LvQtdC80LXQvdGCINC80LDRgdGB0LjQstCwIGluZGV4WzAuLjldINGB0L7QtNC10YDQttC40YIg0LrQvtC70LjRh9C10YHRgtCy0L4gCiAg0YHQvtC+0YLQstC10YLRgdGC0LLRg9GO0YnQuNGFINGG0LjRhNGAINCyINGH0LjRgdC70LUsINC90LDQv9GA0LjQvNC10YAgaW5kZXhbM109NSAtINCyINGH0LjRgdC70LUg0L/Rj9GC0Ywg0YLRgNC+0LXQun0KICBmdW5jdGlvbiBUZXN0TnVtYmVyKG46SW50ZWdlcik6SW50ZWdlcjsKICB2YXIgaW5kZXg6VEJ5dGU7CiAgICAgIHN0YXR1czpCeXRlOwogICAgICBpOkludGVnZXI7CiAgICAgIHRlbXA6cmVhbDsKICBiZWdpbgogICAgc3RhdHVzOj0wOwogICAgVGVzdE51bWJlcjo9c3RhdHVzOwogICAgRmlsbEFycmF5KGluZGV4LEhpZ2goaW5kZXgpLUxvdyhpbmRleCksMCk7CiAgICB3aGlsZSBuPjAgZG8KICAgICAgYmVnaW4KICAgICAgICBpbmMoaW5kZXhbbiBtb2QgMTBdKTsKICAgICAgICBuOj1uIGRpdiAxMDsKICAgICAgZW5kOwogICAgZm9yIGk6PTAgdG8gOSBkbwogICAgICBpZiBpbmRleFtpXT4xIHRoZW4KICAgICAgICBiZWdpbgogICAgICAgICAgc3RhdHVzOj0xOwogICAgICAgICAgVGVzdE51bWJlcjo9c3RhdHVzOwogICAgICAgICAgYnJlYWs7CiAgICAgICAgZW5kOwogICAgaWYgKHN0YXR1cz0wKSB0aGVuIGV4aXQ7CiAgICB0ZW1wOj0xOwogICAgZm9yIGk6PTEgdG8gOSBkbwogICAgICBpZiBpbmRleFtpXT4wIHRoZW4KICAgICAgICB0ZW1wOj10ZW1wKmV4cChsbihpKSppbmRleFtpXSk7CiAgICBpZiAoKCh0cnVuYyh0ZW1wKSsxKSBtb2QgMTQpPTApIHRoZW4gCiAgICAgIFRlc3ROdW1iZXI6PTI7CiAgZW5kOwogIAogIHvQo9C00LDQu9C10L3QuNC1INGH0LjRgdC70LAg0LjQtyDQvNCw0YHRgdC40LLQsH0KICBwcm9jZWR1cmUgZGVsZXRlKHZhciBBOlRBcnJheTsgdmFyIG46SW50ZWdlcik7CiAgdmFyIGssbTpJbnRlZ2VyOwogIGJlZ2luCiAgICBrOj0xOwogICAgd2hpbGUgazw9biBkbwogICAgICBpZiBUZXN0TnVtYmVyKEFba10pPTAgdGhlbgogICAgICAgIGJlZ2luCiAgICAgICAgICBmb3IgbTo9ayB0byBuLTEgZG8KICAgICAgICAgICAgQVttXTo9QVttKzFdOwogICAgICAgICAgbjo9bi0xOwogICAgICAgIGVuZAogICAgICAgZWxzZQogICAgICAgIGs6PWsrMTsKICBlbmQ7CiAgCiAgcHJvY2VkdXJlIERyZWFkTWFnaWModmFyIEE6VEFycmF5OyB2YXIgQjpUQXJyYXk7IHZhciBuOkludGVnZXIpOwogIHZhciBrLGk6SW50ZWdlcjsKICBiZWdpbgogICAgazo9MDsKICAgIGZvciBpOj0xIHRvIG4gZG8KICAgIGNhc2UgVGVzdE51bWJlcihBW2ldKSBvZgogICAgICAwOiA7IHtkbyBub3RoaW5nfQogICAgICAxOiBiZWdpbgogICAgICAgICAgICBrOj1rKzE7CiAgICAgICAgICAgIEJba106PUFbaV07CiAgICAgICAgIGVuZDsKICAgICAgMjogYmVnaW4KICAgICAgICAgICAgazo9aysxOyBCW2tdOj1BW2ldOwogICAgICAgICAgICBrOj1rKzE7IEJba106PUFbaV07CiAgICAgICAgIGVuZDsKICAgIGVuZDsKICAgIG46PWs7CiAgZW5kOwogIAogIHByb2NlZHVyZSBJbnB1dCh2YXIgQTpUQXJyYXk7IHZhciBuOkludGVnZXIpOwogIHZhciBpOkludGVnZXI7CiAgYmVnaW4KICAgIHdyaXRlKCdFbnRlciBuOiAnKTsKICAgIHJlYWQobik7CiAgICB3cml0ZWxuKCdFbnRlciAnLG4sICcgZWxlbWVudHM6Jyk7CiAgICBmb3IgaTo9MSB0byBuIGRvCiAgICAgIHJlYWQoQVtpXSk7CiAgZW5kOwogIAogIHByb2NlZHVyZSBPdXRwdXQoQTpUQXJyYXk7IG46SW50ZWdlcik7CiAgdmFyIGk6SW50ZWdlcjsKICBiZWdpbgogICAgZm9yIGk6PTEgdG8gbiBkbwogICAgICB3cml0ZShBW2ldOjYpOwogIGVuZDsKICAKICBjb25zdCBUOmFycmF5WzEuLjddIG9mIEludGVnZXI9KDk4Nyw0NTYyLDExMjMsNTkyMzQsNTU3NjgsODc2LDExNzIpOwogIHZhciBBOlRBcnJheTsKICAgICAgQjpUQXJyYXk7CiAgICAgIGksbjpJbnRlZ2VyOwogIGJlZ2luCiAgICBuOj0wOwogICAge2ZvciBpOj0xIHRvIG4gZG8KICAgICAgQVtpXTo9VFtpXTt9CiAgICBJbnB1dChBLG4pOwogICAgRHJlYWRNYWdpYyhBLEIsbik7CiAgICBPdXRwdXQoQixuKTsKICBlbmQu