var pos,neg: integer; i,k,x: integer; ev,un: integer; a,b: array [1..n] of integer;
begin for i := 1 to n do read(a[i]); k := 0; pos := 0; neg := 0; for i := 1 to n do begin ev := 0; un := 0; x := a[i]; if x <> 0 then if x > 0 then if (x < pos) or (pos = 0) then pos := x else else if (x > neg) or (neg = 0) then neg := x; x := abs(x); while x <> 0 do begin if odd(x) then un := un + 1 else ev := ev + 1; x := x div 10 end; if un = ev then begin k := k + 1; b[k] := a[i] end end;
writeln(pos,' ',neg); for i := 1 to k do write(b[i],' ') end.
В терминологии сетей TCP/IP маской сети называется 32-разрядная двоичная Последовательность, определяющая, какая часть IP-адреса узла сети относится к адресу сети, а какая – к адресу самого узла в этой сети. При этом в маске сначала (в старших разрядах) стоят единицы, а затем с некоторого места нули.Адрес сети получается в результате применения поразрядной конъюнкции к заданному IP-адресу узла и маске. Обычно маска записывается по тем же правилам, что и IP-адрес – в виде четырёх байтов, причём каждый байт записывается в виде десятичного числа.Пример. Пусть IP-адрес узла равен 231.32.255.131, а маска равна 255.255.240.0. Тогда адрес сети равен 231.32.240.0. Для узла с IP-адресом 227.138.127.144 адрес сети равен 227.138.64.0. Чему равен третий слева байт маски? ответ запишите в виде десятичного числа.
Пояснение.12710 = 01111111206410 = 010000002Заметим, что в маске во втором бите слева должна стоять единица, а в третьем бите слева — ноль. И так как мы знаем про маски, что в них сначала идут единицы, а потом нули, то получаем, что третий слева байт равен 110000002 = 19210 Правильный ответ: 192
n = 20;
var
pos,neg: integer;
i,k,x: integer;
ev,un: integer;
a,b: array [1..n] of integer;
begin
for i := 1 to n do
read(a[i]);
k := 0;
pos := 0;
neg := 0;
for i := 1 to n do
begin
ev := 0;
un := 0;
x := a[i];
if x <> 0 then
if x > 0 then
if (x < pos) or (pos = 0) then
pos := x
else
else
if (x > neg) or (neg = 0) then
neg := x;
x := abs(x);
while x <> 0 do
begin
if odd(x) then
un := un + 1
else
ev := ev + 1;
x := x div 10
end;
if un = ev then
begin
k := k + 1;
b[k] := a[i]
end
end;
writeln(pos,' ',neg);
for i := 1 to k do
write(b[i],' ')
end.