Цитата
Если бы я ещё понимала, чего от меня хотят...
Допустим, у тебя есть матрица:
0 0 0 1 1 0
0 1 1 1 1 0
1 1 1 1 0 0
Это должно выдать "нет" потому что нет в 6-ой позиции единицы нигде...
В общем случае - надо как бы "складывать" строки: "0" + "0" = "0", все остальные комбинации = "1", и смотреть, есть ли 2 строки, при "сложении" которых получаются ВСЕ единицы...
Добавлено позже:Я вот тут подумал, а нужно ли заморачиваться с LongInt-ами? Можно ведь сделать еще проще (тут число столбцов ограничено не 32, как с LongInt-ами, а 255):
Код
Type TSet = Set Of Byte;
Var
Arr: array[1 .. 100] of TSet;
i, j, m, n, x: integer;
begin
{ Читаем M, N }
for i := 1 to m do
begin
Arr[i] := [];
for j := 1 to n do
begin
readln(x); { Читаем очередное число }
{ в список заносим только столбцы содержащие 1-цы }
if x = 1 then Arr[i] := Arr[i] + [j];
end;
end;
{ Заполнила массив множеств, теперь - перебор... }
for i := 1 to m-1 do
for j := i+1 to m do
{ проверка, все ли столбцы находятся в объединенном списке строк i и j? }
if Arr[i] + Arr[j] = [1 .. n] then
writeln('строки ', i, ' и ', j, 'содержат 1-цы во всех столбцах')
end.