ВНИМАНИЕ!!! В следующих задачах элементами двумерного массива являются символы.
Функции EOLN и EOF
{Чтение символьного двумерного массива в случаях, когда не указана размерность массива}
var a:array [1..50,1..50] of char;
i,j:integer;
begin
assign (input,'input.txt');
reset (input);
assign (output,'output.txt');
rewrite (output);
i:=1;
while not eof (input) do { пока не достигнут конец входного файла }
begin
j:=1;
while not eoln (input) do { пока не достигнут конец строки }
begin
read (a[i,j]);
inc (j);
end;
readln;
inc(i);
end;
n:=i – 1; { размерность массива – количество строк n }
m:=j – 1; { размерность массива – количество столбцов m }
…
close (input);
close (output);
end.
Решение задач
1. Найти количество строк массива, которые содержат ровно 3 буквы «о».
2. Найти номер первого по порядку столбца массива, содержащего наибольшее число пробелов
3. Напечатать слова, образованные нечетными элементами каждого столбца массива.
4. Сапер (Время: 1 сек. Память: 16 Мб)
Мальчику Васе очень нравится известная игра "Сапер" ("Minesweeper").
№ | input.txt | output.txt |
10 9 23 1 8 2 3 3 2 3 3 4 3 5 7 6 7 7 1 7 2 7 3 7 4 7 5 7 6 7 7 7 8 8 1 8 3 8 5 8 7 9 3 9 5 9 6 9 7 | .111..1*1 13*2..111 1**3..... 13*2.111..111.2*2. 233335*41 ********1 *6*7*8*41 13*4***2..1122321. |
В "Сапер" играет один человек. Игра идет на клетчатом поле (далее будем называть его картой) NxM (N строк, M столбцов). В K клетках поля стоят мины, в остальных клетках записано либо число от 1 до 8 — количество мин в соседних клетках, либо ничего не написано, если в соседних клетках мин нет. Клетки являются соседними, если они имеют хотя бы одну общую точку, в одной клетке не может стоять более одной мины. Изначально все клетки поля закрыты. Игрок за один ход может открыть какую-нибудь клетку. Если в открытой им клетке оказывается мина — он проигрывает, иначе игроку показывается число, которое стоит в этой клетке, и игра продолжается. Цель игры — открыть все клетки, в которых нет мин.
У Васи на компьютере есть эта игра, но ему кажется, что все карты, которые в ней есть, некрасивые и неинтересные. Поэтому он решил нарисовать свои. Однако фантазия у него богатая, а времени мало, и он хочет успеть нарисовать как можно больше карт. Поэтому он просто выбирает N, M и K и расставляет мины на поле, после чего все остальные клетки могут быть однозначно определены. Однако на определение остальных клеток он не хочет тратить свое драгоценное время. Помогите ему! По заданным N, M, K и координатам мин восстановите полную карту.
Входные данные
В первой строке входного файла INPUT.TXT содержатся числа N, M и K (1<=N<=200, 1<=M<=200, 0<=K<=N*M). Далее идут K строк, в каждой из которых содержится по два числа, задающих координаты мин. Первое число в каждой строке задает номер строки клетки, где находится мина, второе число — номер столбца. Левая верхняя клетка поля имеет координаты (1,1), правая нижняя — координаты (N,M).
Выходные данные
Выходной файл OUTPUT.TXT должен содержать N строк по M символов — соответствующие строки карты. j-й символ i-й строки должен содержать символ ‘*‘ (звездочка) если в клетке (i,j) стоит мина, цифру от 1 до 8, если в этой клетке стоит соответствующее число, либо ‘.‘ (точка), если клетка (i,j) пустая.
5. Табло (Время: 1 сек. Память: 16 Мб)
На хоккейном стадионе в одном большом городе расположено большое прямоугольное табло. Оно имеет n строк и m столбцов (то есть состоит из n x m ячеек). Во время хоккейного матча это табло служит для отображения счета и времени, прошедшего с начала тайма, а в перерывах на нем показывают различную рекламу.
В связи с этим возникла задача проверки возможности показа на этом табло определенной рекламной заставки. Заставка также, как и табло, имеет размер n строк на m столбцов. Каждая из ячеек заставки окрашена в один из четырех цветов - трех основных: красный - R, зеленый - G, синий - B и черный -.(точка).
Каждая из ячеек табло характеризуется своими цветопередаточными возможностями. Любая из ячеек табло может отображать черный цвет - это соответствует тому, что на нее вообще не подается напряжение. Также каждая из ячеек может отображать некоторое подмножество множества основных цветов. В этой задаче эти подмножества будут кодироваться следующим образом:
№ | input.txt | output.txt |
3 3.GB R.B RG. 0 1 2 3 4 5 6 7 0 | NO | |
2 3 RGB.G. 7 7 7 7 7 7 | YES |
- 0 - ячейка может отображать только черный цвет;
- 1 - ячейка может отображать только черный и синий цвета;
- 2 - ячейка может отображать только черный и зеленый цвета;
- 3 - ячейка может отображать только черный, зеленый и синий цвета;
- 4 - ячейка может отображать только черный и красный цвета;
- 5 - ячейка может отображать только черный, красный и синий цвета;
- 6 - ячейка может отображать только черный, красный и зеленый цвета;
- 7 - ячейка может отображать только черный, красный, зеленый и синий цвета.
Напишите программу, которая по описанию табло и заставки определяет: возможно ли на табло отобразить эту заставку.
Входные данные
Первая строка входного файла INPUT.TXT содержит целые числа n и m (1 <= n, m <= 100). Далее идут n строк по m символов каждая - описание заставки. Каждый из символов описания заставки принадлежит множеству {R, G, B,.}. Их значения описаны выше.
После этого идет описание табло. Оно содержит n строк по m чисел, разделенных пробелами. Значения чисел описаны выше.
Выходные данные: В выходной файл OUTPUT.TXT выведите YES, если на табло возможно отобразить заставку и NO - в противном случае.
№ | input.txt | output.txt |
4 2 2 -2 2 -2 -2 2 -2 | ||
6 2 2 -2 2 -2 -2 2 -2 1 1 -1 3 |
6. Стрелок (Время: 1 сек. Память: 16 Мб)
Стрелок стоит в центре стрельбища. На стрельбище несколько мишеней. Пули стрелка пробивают мишени насквозь, не теряя скорости, и могут поразить все мишени, стоящие на одной линии.
Будем считать, что стрелок стоит в центре начала координат. Известны координаты всех мишеней (для простоты будем считать их геометрические размеры пренебрежимо малыми). Определите минимальное число выстрелов, необходимых стрелку для поражения всех мишеней.
Входные данные
Первая строка входного файла INPUT.TXT содержит натуральное число N – количество мишеней (N ≤ 20). Далее идет N строк с информацией о координатах каждой мишени, при этом в каждой строке указывается два целых числа через пробел X и Y (-10 <= X, Y <= 10).
Выходные данные
В выходной файл OUTPUT.TXT выведите одно целое число – наименьшее количество выстрелов, необходимых для поражения всех мишеней.