var
n, Num, i, j, t: integer;
Count: array[1..12] of integer;
Names: array[1..12] of integer;
begin
for i := 1 to 12 do
begin
Count[i] := 0;
Names[i] := i;
end;
ReadLn(N); { Считываем количество запросов}
for i := 1 to N do
begin
ReadLn(t); {считали очередной запрос}
Count[t] := Count[t] + 1;
end;
{Сортируем массивы Names и Count в порядке убывания значений массива Count}
for i := 12 downto 2 do
for j := 2 to i do
if Count[j - 1] < Count[j] then
begin
t := Count[j];
Count[j] := Count[j - 1];
Count[j - 1] := t;
t := Names[j];
Names[j] := Names[j - 1];
Names[j - 1] := t;
end;
for i := 12 downto 1 do
if Count[i] > 0 then
WriteLn(Names[i], ' ', Count[i]);
end.
Объяснение:
x - четное = x дает остаток 0 при делении на 2
Операция взятия остатка при делении в Паскале - mod, корень - sqrt, степень - power (если вы не используете старый Паскаль), квадрат - sqr, натуральный логарифм - log.
Код (Pascal):
const
a = 3e-3;
b = 4.65;
var
x: integer;
Z: real;
begin
read(x);
if x mod 2 = 0 then
Z := sqrt(a + sqr(sin(x * x)) * b)
else
Z := power(a, 1 / 3) + b * b * log(b);
write(Z)
end.
Пример ввода 1:
6
Пример вывода 1:
2.1393591605284
Пример ввода 2:
3
Пример вывода 2:
33.3751364128159