Школьная олимпиада
по «Информатике и ИКТ»
11 класс

В следующих задачах необходимо написать текст программы на каком-либо языке программирования

Условия задач:

1)  (2 балла)

Вывести квадрат, состоящий из NxN ячеек, заполненных числами от 1 до N2 "змейкой" (см. примеры).
Ограничения: 2 <= N <= 100.
Ввод: Число N.
Вывод: Выводится N строк по N чисел, разделённых пробелами. Не допускаются начало змейки в другом углу или другое её направление.

Примеры

Ввод 1 Ввод 2 Ввод 3

3 4 5

Вывод 1 Вывод 2 Вывод 3

1 2 3 1 2 3 4 1 2 3 4 5

8 9 4 12 13 14 5 16 17 18 19 6

7 6 5 11 16 15 6 15 24 25 20 7

10 9 8 7 14 23 22 21 8

13 12 11 10 9

2) Длинная сумма (3 балла)
Даны два целых неотрицательных числа: M и N. Найти их сумму.
Ограничения: 0 <= M, N < 1030 000 (т. е. числа большие, чем longInt)
Ввод: В первой строке содержится M, во второй - N.
Вывод: Вывести сумму без пробелов.

Пример

Ввод

12345678901234567890123456789

1111111111111111111111111111

Вывод

13456790012345679001234567900

3) (3 балла) Отредактировать заданное предложение, удаляя из него все слова с нечетными номерами и переворачивая слова с четными номерами.

Пример:

Ввод

How do you do

Вывод

od od

4) (4 балла)

В последовательности цифр а1, а2, а3, … каждый член, начиная с четвёртого, равен последней цифре суммы трёх предыдущих.

Требуется написать программу, которая по заданным а1, а2, а3 определяет аn, где n <= 1000000000.

Формат входных данных:
Вначале задаются три цифры а1, а2, а3
Затем — одно число n.

Пример:

Ввод

2 3 6

1000000000

Вывод

7

5) “Сдвиги” (5 баллов)

Дано целое десятичное число N (1 <= N <= 65535).

Некто записал это число в двоичном формате и стал циклически сдвигать влево, т. е. брать первую цифру числа и переносить ее в конец. Например, если N = 11, то в двоичном формате оно будет представлено как 1011. После первого сдвига получится 0111, после второго — 1110, после третьего — 1101, после четвертого — исходное число 1011. Легко видеть, что максимальное значение из всех полученных таким образом чисел будет иметь число 1110, и это значение в десятичной системе равно 14.

Требуется написать программу, которая для заданного числа N определяет максимальное значение среди чисел, которые могут получаться в результате вышеописанных сдвигов.

Пример:

Ввод

11

Вывод

14