Тренировка S02

Время тестирования приведено для Intel Celeron 400.
Решения должны быть представлены на Turbo Pascal 7.0. Объём памяти, предоставляемый программе, составляет 500 кб.


        Задача A. Простые числа (2)

Вывести все простые числа от M до N включительно.
Ограничения: 2 <= M <= N <= 1 000 000, время 6 с.
Ввод из файла primes2.in. В первой строке находятся разделённые пробелом M и N.
Вывод в файл primes2.out. Вывести числа в порядке возрастания, по одному в строке. Если между M и N включительно нет простых - вывести "Absent".
Примеры
Ввод 1    Ввод 2
2 5       4 4
Вывод 1   Вывод 2
2         Absent
3
5

        Задача B. Перестановки

Дана строка, состоящая из M попарно различных символов. Вывести все перестановки символов данной строки.
Ограничения: 2 <= M <= 8, символы - буквы латинского алфавита и цифры, время 1 с.
Ввод из файла permut.in. В первой строке файла находится исходная строка.
Вывод в файл permut.out. Вывести в каждой строке файла по одной перестановке. Перестановки можно выводить в любом порядке. Повторений и строк, не являющихся перестановками исходной, быть не должно.
Примеры
Ввод 1    Ввод 2
AB        IOX
Вывод 1   Вывод 2
AB        XOI
BA        OIX
          IXO
          XIO
          OXI
          IOX

        Задача C. Маршрут

В таблице из N строк и N столбцов клетки заполнены цифрами от 0 до 9. Требуется найти такой путь из клетки (1, 1) в клетку (NN), чтобы сумма цифр в клетках, через которые он пролегает, была минимальной; из любой клетки ходить можно только вниз или вправо.
Ограничения: 2 <= N <= 250, время 1 с.
Ввод из файла route.in. В первой строке находится число N. В следующих N строках содержатся по N цифр без пробелов.
Вывод в файл route.out. Выводятся N строк по N символов. Символ решётка показывает, что маршрут проходит через эту клетку, а минус - что не проходит. Если путей с минимальной суммой цифр несколько, вывести любой.
Примеры
Ввод 1
3
943
216
091
Вывод 1
#--
###
--#

        Задача D. Пересечение отрезков

Два отрезка на плоскости заданы целочисленными координатами своих концов в декартовой системе координат. Требуется определить, существует ли у них общая точка.
Ограничения: координаты целые и по модулю не превосходят 10 000, время 1 с.
Ввод из файла segments.in. В первой строке содержатся координаты первого конца первого отрезка, во второй - второго конца первого отрезка, в третьей и четвёртой - координаты концов второго отрезка.
Вывод в файл segments.out. Выводится слово "Yes", если общая точка есть, или слово "No" - в противном случае.
Примеры
Ввод 1    Ввод 2
0 0       0 0
1 0       1 0
1 0       2 0
1 1       3 0
Вывод 1   Вывод 2
Yes       No

        Задача E. Длинная сумма

Даны два целых неотрицательных числа: M и N. Найти их сумму.
Ограничения: 0 <= MN < 1030 000, время 1 с.
Ввод из файла longsum.in. В первой строке содержится M, во второй - N.
Вывод в файл longsum.out. В первой строке вывести сумму без пробелов и ведущих нулей.
Примеры
Ввод 1
12345678901234567890123456789
1111111111111111111111111111
Вывод 1
13456790012345679001234567900

        Задача F. Спираль

Вывести квадрат, состоящий из NxN клеток, заполненных числами от 1 до N 2 по спирали (см. примеры).
Ограничения: 2 <= N <= 100, время 1 с.
Ввод из файла spiral.in. В первой строке находится единственное число N.
Вывод в файл spiral.out. Выводится 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
Hosted by uCoz