Как могут соотноситься между собой числа:
(a) одно число 0, второе - нечетное в промежутке [1, 27] (получается, если в исходном числе одна четная цифра - 0 - и три нечетных, или три нуля и одно нечетное)
(b) одно число 0, второе - четное в промежутке [2, 36] (получается, если в исходном числе нет нечетных цифр или нет четных цифр или два нуля и две нечетные цифры)
(с) одно число четное в промежутке [2, 8], второе нечетное в промежутке [3, 27] (получается, если одна чётная цифра и три нечётных)
(d) одно число четное в промежутке [2, 24], второе нечетное в промежутке [1, 9] (получается, если одна нечётная цифра и три четных)
(e) оба числа четные, одно в промежутке [2, 18], второе в промежутке [2, 16] (получается, если две чётных цифры и две нечётных)
Дальше каждое число (кроме 370) разбито на 2, в скобках стоит тот случай, под который подпадает число
236: 23, 6 (c, +)
1313: 13, 13 (-)
270: 27, 0 (a, +)
1114: 11, 14 (<, -)
1614: 16, 14 (e, +)
187: 18, 7 (c, +)
370: - (-)
294: 29, 4 (-)
40: 4, 0 (b, +)
Ответ. 5 чисел
//Обьявляем дополнительные переменные и главный массив, а также два дополнительных - они будут "половинками".
var
a, b, c: array [1..100] of longint;
i, min, n, j, t: longint;
begin
//Читаем количество элементов в нашем массиве.
readln(n);
//Читаем массив.
for i := 1 to n do read(a[i]);
//Заполняем первую "половинку".
for i := 1 to n div 2 do b[i] := a[i];
//Заполняем вторую "половинку". Но раз это уже вторая "половинка" главного массива, то и
//цикл теперь должен начинаться со второй части массива, а заканчиваться уже в его конце.
for i := n div 2 + 1 to n do c[i - n div 2] := a[i];
//Теперь отсортируем первую "половинку" методом выбора. Идея этого метода
//основывается на том, что мы ищем минимальный среди неотсортированных элемент,
//а затем просто swap-аем его с тем, который стоит сразу после отсортированных.
for i := 1 to (n - 1) div 2 do
begin
min := i;
for j := i + 1 to n div 2 do
if b[min] > b[j] then
min := j;
if min <> i then begin
t := b[i];
b[i] := b[min];
b[min] := t;
end;
end;
//Затем вторую точно также, только стоит обратить внимание на сравнения.
//Так как надо отсортировать по убыванию, то теперь сравнение перед "swap"-ом
//будет другим.
for i := 1 to (n - 1) div 2 do
begin
min := i;
for j := i + 1 to n div 2 do
if c[min] < c[j] then
min := j;
if min <> i then begin
t := c[i];
c[i] := c[min];
c[min] := t;
end;
end;
//А теперь просто по очереди выводим готовые "половинки", не забывая ставить
//пробел после вывода каждого элемента.
for i := 1 to n div 2 do write(b[i], ' ');
for i := 1 to n - n div 2 do write(c[i], ' ');
end.
640 * 480 = 307200 точек на экране
64 Кбайт / 307200 = 64 * 1024 байт / 307200=0,64 * 8 бит/ 3 = 1,7 бит, т.е. больше двух цветов не получится.
N - количество цветов.
i - глубина цвета.
N=2^i
1) 2^1=2
2) 2^2=4
3) 2^3=8
4) 2^4=16
5) 2^8=256
6) 2^16=65536
7) 2^24=16777216
4 Кбайт = 4*1024 байт = 4*1024*8 бит
Объем одного пикселя = 4*1024*8 / (175*175) ≈ 1,07 бит ≈ 1 бит
Число цветов = 2^1 = 2