lightluck134
Дек. 10, 2017 16:58:10
Уже как несколько недель не могу решить задачу, все коды, которые писала - не проходят, а сдавать сегодня. Помогите, пожалуйста.
Задание:
Каждый из N школьников некоторой школы знает Mᵢ языков. Определите, какие языки знают все школьники и языки, которые знает хотя бы один из школьников.
Формат ввода
Первая строка входных данных содержит количество школьников N. Далее идет N чисел Mᵢ, после каждого из чисел идет Mᵢ строк, содержащих названия языков, которые знает i-й школьник. Длина названий языков не превышает 1000 символов, количество различных языков не более 1000. 1≤N≤1000, 1≤Mᵢ≤500.
Формат вывода
В первой строке выведите количество языков, которые знают все школьники. Начиная со второй строки - список таких языков. Затем - количество языков, которые знает хотя бы один школьник, на следующих строках - список таких языков.
DamMercul
Дек. 10, 2017 18:37:26
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)
Решение выдает, возможно, ответ в неправильном формате. Перепиши конец как тебе надо. Думаю, этот вариант пройдет на тесте. По крайней мере он прошел 6 моих тестов
lightluck134
Дек. 10, 2017 19:44:03
Спасибо!
Сегодня все же удалось найти верное решение. Оставлю его здесь, может быть кому-нибудь еще пригодится

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])