![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Valkirie |
![]() ![]()
Сообщение
#1
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 36 Пол: Женский Репутация: ![]() ![]() ![]() |
Ребята, помогите, плииз.... чё то я не совсем понимаю...что тут к чему...
![]() Вводится прямоугольный массив, состоящий из 0 и 1. Можно ли в нем выбрать 2 строки так, чтобы в них каждый столбец содержал хотя бы одну единицу. Динамическими массивами не пользоваться. Вход В первой строке входа дано количество строк M и количество столбцов N в массиве. Далее следуют MxN элементов массива в следующем порядке: сначала элементы первой строки, затем элементы второй строки и т.д. (0 либо 1, по одному в каждой строке). Выход На выход напечатать yes в случае положительного ответа и no в случае отрицательного. |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Цитата Если бы я ещё понимала, чего от меня хотят... Допустим, у тебя есть матрица: 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. |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 11:07 |