Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Теоретические вопросы _ Число во всех строках

Автор: -Evgen- 1.12.2005 21:14

Здравствуйте! Помогите пожалуйста разобраться с задачей. Вообще не понимаю чего требуется сделать wacko.gif :

Задан
целочисленный массив A[1..m,1..n]. Каждая
строка массива упорядочена по неубыванию, то
есть A[i,1] ? A[i,2] ? ... при всех i = 1,
... , m. Найти и напечатать число,
встречающееся во всех строках, если такого
числа не окажется, напечатать соответствующее
сообщение.

Автор: volvo 1.12.2005 21:29

Если элементы имеют тип Byte (который, в принципе, тоже является целочисленным), то решение может быть таким:

common_set := [];
for j := 1 to n do include(common_set, a[1, j]);

for i := 2 to m do begin
curr_set := [];
for j := 1 to n do include(curr_set, a[i, j]);
common_set := common_set * curr_set;
end;

и потом анализируешь common_set (проверяешь его на пустоту). Если это множество - пустое, то нет чисел, содержащихся во всех строках. Иначе - все числа, входящие в common_set встречаются во ВСЕХ строках матрицы...

Если тип элементов матрицы другой - можно реализовать свой тип множества (через работу с битами) rolleyes.gif

Автор: Дож 1.12.2005 22:31

Цитата
Помогите пожалуйста разобраться с задачей.

А разве эта тема не должна быть в разделе задач??? blink.gif