Форум сайта python.su
Уже как несколько недель не могу решить задачу, все коды, которые писала - не проходят, а сдавать сегодня. Помогите, пожалуйста.
Задание:
Каждый из N школьников некоторой школы знает Mᵢ языков. Определите, какие языки знают все школьники и языки, которые знает хотя бы один из школьников.
Формат ввода
Первая строка входных данных содержит количество школьников N. Далее идет N чисел Mᵢ, после каждого из чисел идет Mᵢ строк, содержащих названия языков, которые знает i-й школьник. Длина названий языков не превышает 1000 символов, количество различных языков не более 1000. 1≤N≤1000, 1≤Mᵢ≤500.
Формат вывода
В первой строке выведите количество языков, которые знают все школьники. Начиная со второй строки - список таких языков. Затем - количество языков, которые знает хотя бы один школьник, на следующих строках - список таких языков.
Офлайн
N = int(input()) one_time_names = [] many_times_name = [] many_times = {} one_time = {} langs = [] langs_col = {} for h in range(0, N): langs.append(str(input())) for g in langs: try: a = langs_col[g] langs_col[g] = langs_col[g] + 1 except KeyError: langs_col[g] = 1 for x in langs: if langs_col[x] == 1: one_time[x] = 1 if x not in one_time_names: one_time_names.append(x) else: pass else: many_times[x] = langs_col[x] if x not in many_times_name: many_times_name.append(x) else: pass print(len(many_times_name), many_times) print(len(one_time_names), one_time)
# Life loop while alive: if (fun > boredom) and money: pass_day(fun, boredom, money) continue else: break
Офлайн
Спасибо!
Сегодня все же удалось найти верное решение. Оставлю его здесь, может быть кому-нибудь еще пригодится
students = {}
allLang = set([])
nPup = int(input())
for pup in range(1, nPup + 1):
nLang = int(input())
languages = []
for lang in range(1, nLang + 1):
languages.append(input())
students[pup] = languages
allLang = allLang.union(set(languages))
eachKnow = set(students.get(1))
for i in range(2, nPup + 1):
eachKnow = eachKnow.intersection(students.get(i))
print(len(eachKnow))
for lang in range(0, len(eachKnow)):
print(list(eachKnow)[lang])
print(len(allLang))
for lang in range(0, len(allLang)):
print(list(allLang)[lang])
Офлайн