Câu trả lời:
Chương trình có thể như sau:
program SapXepLeChan;
const
MAX = 100000;
type
Mang = array[1..MAX] of Int64;
var
a: Mang;
n, i, j, temp: integer;
procedure SapXep(var a: Mang; n: integer);
var
i, j, temp: integer;
begin
// Sắp xếp số lẻ tăng dần
for i := 1 to n - 1 do
for j := i + 1 to n do
if (a[i] mod 2 <> 0) and (a[j] mod 2 <> 0) then
if a[i] > a[j] then
begin
temp := a[i];
a[i] := a[j];
a[j] := temp;
end;
// Sắp xếp số chẵn giảm dần
for i := 1 to n - 1 do
for j := i + 1 to n do
if (a[i] mod 2 = 0) and (a[j] mod 2 = 0) then
if a[i] < a[j] then
begin
temp := a[i];
a[i] := a[j];
a[j] := temp;
end;
end;
begin
// Nhập dữ liệu
readln(n);
for i := 1 to n do
readln(a[i]);
// Sắp xếp
SapXep(a, n);
// In ra màn hình
for i := 1 to n do
writeln(a[i]);
end.