|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
22.01.2012, 22:03 | #1 |
Регистрация: 10.08.2011
Сообщений: 5
|
Unfriend
Марк пригласил некоторых людей присоединиться к его социальной сети. Некоторые из них пригласили других людей, которые пригласили третьих и т.д. Теперь в сети есть N человек, пронумерованных от 1 до N. Марк решил удалить некоторых людей. Но есть одно ограничение: при удалении человека, нужно удалить и всех людей, которых он пригласил, и всех кого пригласили эти люди и т.д. Марк никогда не удаляет себя. И было запрещено вводить людей приглашенных более чем одной персоной. Марк может также решить не удалять никого.
Сколько различных множеств людей может быть удалено. Формат ввода Первая строка содержит одно целое число N (N<=6), количество людей в сети. Далее следуют N-1 строка, указывающие, кто пригласил каждого человека. А именно, строка I содержит целое число j (j>i) которая указывает, что человека с номером I пригласил человек с номером j. Марк – это человек с номером N. Формат вывода Выведите одно целое число, количество возможных множеств людей, которые могут быть удалены. Ввод 3 3 3 Вывод 4 Пояснение: Первое число указывает, что в сети три человека. Следующая строка говорит, что человека 1 пригласил Марк, а следующая что и человека 2 тоже пригласил Марк. Имеются 4 множества людей, которые могут быть удалены: {}, {1}, {2}, {1,2}. |
22.01.2012, 22:51 | #2 |
Пользователь
Регистрация: 22.01.2012
Сообщений: 97
|
прога на паскале нужна???
беру сколько дадите, если захотите. Проще говоря за Пиво.
Модераторам: не баньте, у мя такие полезные советы, они стоющие
|
22.01.2012, 23:12 | #3 |
Регистрация: 10.08.2011
Сообщений: 5
|
да на паскале нужна
|
22.01.2012, 23:20 | #4 |
Регистрация: 10.08.2011
Сообщений: 5
|
у меня такой код а нужно на паскале
def goodNumber(N, x): last = N ok = True while x > 0 and ok: digit = x % 10 ok = digit < last last = digit x = x // 10 return ok def goodCombo(N,x,l): digits = [] while x > 0: digits.append(x % 10) x = x // 10 for d in digits: for x in range(0,N-1): if d == l[x]: if (x+1) not in digits: return False return True N = input() l = [] for i in range(1,N): l.append(input()) max = eval("12345"[0:N-1]) count = 1 for i in range(1, max+1): if goodNumber(N, i) and goodCombo(N, i, l): count = count + 1 print count |
23.01.2012, 09:16 | #5 |
Пользователь
Регистрация: 22.01.2012
Сообщений: 97
|
это байсик что ли
Модераторам: не баньте, у мя такие полезные советы, они стоющие
|
23.01.2012, 09:27 | #6 |
Пользователь
Регистрация: 22.01.2012
Сообщений: 97
|
Мля, а почему марк не номер ноль. Так можно????
Модераторам: не баньте, у мя такие полезные советы, они стоющие
|
23.01.2012, 11:20 | #7 |
Регистрация: 10.08.2011
Сообщений: 5
|
нет это java
|
23.01.2012, 12:03 | #8 |
Пользователь
Регистрация: 22.01.2012
Сообщений: 97
|
а имена людей нужны
алгоритм таков i:array[1..n]of string;j:array[1..n]of integer; {input i & j for 1 to n} writeln's(i&j) writeln('udalit' namber) delete namber&clics korecchia spisca писать займёт 20-30 мин????????????????????????????
Модераторам: не баньте, у мя такие полезные советы, они стоющие
|