Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.12.2008, 11:16   #1
Rusl92
Форумчанин
 
Аватар для Rusl92
 
Регистрация: 30.03.2008
Сообщений: 392
Плохо Задача про строительство Вавилонской башни

Здравствуйте форумчане! Не могли бы вы мне помочь решить эту задачку:
Вавилонская башня
При строительстве Вавилонской башни, как известно, Бог смешал все языки. В результате оказалось, что каждый человек знает некоторое множество языков. Два человека могут передать друг другу информацию, если существует язык, который они оба знают. Руководитель стройки передает команды на известных ему языках. Те, кто эти команды получил, могут их передавать дальше, переводя на известные им языки. Определить количество людей, до которых доходят команды руководителя.
Входные данные:
Для удобства пронумеруем все языки числами от 1 до 50. Вначале задается количество людей n, а дальше идут описания того, какие языки знают эти люди. Для каждого человека записано сначала число M, определяющее количество языков, известных i-ому человеку, а затем перечисляются номера самих этих языков в возрастающем порядке (номера языков - числа от 1 до 50). Считается, что руководитель строительства - это человек с номером 1.
Выходные данные : Нужно вывести на экран одно число - количество человек, до которых может "дойти" отданная руководителем команда (включая самого руководителя).
Примеры:
1 тест:

5
2 1 2
1 1
2 2 3
0
2 4 5

ответ:
3

2 тест:

8
3 1 4 8
3 2 4 15
3 12 14 19
2 14 33
2 8 11
4 2 4 18 21
1 15
2 21 23

ответ:
6

Помогите пожалуйста, я пробовал, но не смог решитЬ! Заранее спасибо!
Программирование - это великое искусство... Такое же как например и живопись!
Rusl92 вне форума Ответить с цитированием
Старый 17.12.2008, 14:37   #2
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Во втором тесте должно быть 4
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Старый 17.12.2008, 14:53   #3
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Код:
uses crt;
var a:array[1..100,1..50] of byte;
    ind:array[1..100] of byte;
    i,j,l,p,n:integer;
    flag:boolean;

begin
writeln('n');
readln(n);
clrscr;
for i:=1 to n do
 begin
  read(ind[i]);
  for j:=1 to ind[i] do
   read(a[i,j]);
 end;
p:=1;
flag:=false;
for i:=2 to n do
 begin
 flag:=false;
 for j:=1 to ind[i] do
  for l:=1 to ind[1] do
    if a[i,j]=a[1,l] then flag:=true;
 if flag then inc(p);
 end;
writeln(p);
end.
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Старый 17.12.2008, 18:16   #4
Rusl92
Форумчанин
 
Аватар для Rusl92
 
Регистрация: 30.03.2008
Сообщений: 392
По умолчанию

я решил намного быстрее с помощью множеств, но все равно спс
Программирование - это великое искусство... Такое же как например и живопись!
Rusl92 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача про 3 прямые meds Паскаль, Turbo Pascal, PascalABC.NET 5 17.11.2008 12:24
Задача про треугольник YO$YA Помощь студентам 10 15.11.2008 20:29
Задача про массив xakkkkker Помощь студентам 2 02.11.2008 10:49
Задача про близнецов stscolt Помощь студентам 2 21.04.2008 22:52
Задача про переключатели Night Помощь студентам 5 21.01.2007 18:15