Я принимал участие в Kick Start, и эта проблема меня смущает: https://codingcompetitions.withgoogle.com/kickstart/round/0000000000050edc/00000000001864bc
(научить меня раунду старта в Google F *)
Может кто-нибудь объяснить, почему используется разница в наборефункция дает неправильный ответ? Спасибо.
ntests=int(input())
for test in range(ntests):
n,s=map(int, input().split(" "))
d2={}
count=0
for emp in range(1,n+1):
arr= list(map(int, input().split(" ")))
numSkills=arr[0]
d2[emp] = set(arr[1:])
for emp1 in range(1,n):
for emp2 in range(emp1+1,n+1):
if len(d2[emp1].difference(d2[emp2]))>0:
count+=1
if len(d2[emp2].difference(d2[emp1])) > 0:
count += 1
print(count)
Вот проблема ниже
Проблема Здесь, в Google, мы любим преподавать друг другу новые навыки! В Google работают N сотрудников, пронумерованных от 1 до N. Всего имеется S различных навыков, пронумерованных от 1 до S. Каждый сотрудник знает до 5 различных навыков.
i-й сотрудник может наставникомj-й сотрудник, если существует навык, который i-й сотрудник знает, а j-й сотрудник не знает. Сколько есть упорядоченных пар (i, j), где i-й сотрудник может наставлять j-го сотрудника?
Входные данные В первой строке входных данных указано количество тестовых случаев, T. T тестовых случаевследовать. В первой строке каждого теста приведены два целых числа N и S, которые являются числом сотрудников и количеством навыков соответственно.
Следующие N строк описывают навыки, которые знает каждый сотрудник. I-я из этих строк начинается с целого числа Ci, которое является числом навыков, которое знает i-й сотрудник. Затем целые числа Ci следуют в той же строке. J-е из этих целых чисел - Aij, указывающее, что i-й сотрудник знает навык Aij.
Выходные данные Для каждого тестового примера выведите одну строку, содержащую Case #x: y, где x - номер тестового случая(начиная с 1), а y - это количество упорядоченных пар (i, j), где i-й сотрудник может наставлять j-го сотрудника.
Ограничения Ограничение по времени: 40 секунд на тестовый набор. Ограничение памяти: 1 ГБ. 1 ≤ T ≤ 100. 1 ≤ S ≤ 1000. 1 ≤ Ci ≤ 5 для всех i. 1 ≤ Aij ≤ S для всех i и j. Aij ≠ Aik для всех j ≠ k.
Тестовый набор 1 (видимый) 2 ≤ N ≤ 500.
Тестовый набор 2 (скрытый) 2 ≤ N ≤ 5 × 104.
Образец
Ввод
2
4 100
4 80 90 100 5
1 90
1 80
3 80 90 100
3 30
4 10 11 12 13
4 10 11 12 13
525 26 27 28 29
Выход
Дело № 1: 7
Дело № 2: 4
В примере № 1: (1, 2) является допустимой парой, поскольку сотрудник 1 знает навык 100 (также 5 и 80), а сотрудник 2 - нет. (1, 3) является допустимой парой, поскольку сотрудник 1 знает навык 100 (также 5 и 90), а сотрудник 3 - нет. (1, 4) является допустимой парой, поскольку сотрудник 1 знает навык 5, а сотрудник 4 - нет. (2, 3) является допустимой парой, поскольку сотрудник 2 знает навык 90, а сотрудник 3 - нет. (3, 2) является допустимой парой, поскольку сотрудник 3 знает навык 80, а сотрудник 2 - нет. (4, 2) является допустимой парой, поскольку сотрудник 4 знает навык 100 (также 80), а сотрудник 2 - нет. (4, 3) является допустимой парой, поскольку сотрудник 4 знает навык 100 (также 90), а сотрудник 3 - нет. Всего существует 7 допустимых пар, поэтому ответом будет 7.
В примере № 2: (1, 3) является допустимой парой, поскольку сотрудник 1 знает навык 10 (также 11, 12 и 13). ), а работника 3 нет. (2, 3) является допустимой парой, поскольку сотрудник 2 знает навык 10 (также 11, 12 и 13), а сотрудник 3 - нет. (3, 1) является допустимой парой, поскольку сотрудник 3 знает навык 28 (также 25, 26, 27 и 29), а сотрудник 1 - нет. (3, 2) является допустимой парой, поскольку сотрудник 3 знает навык 27 (также 25, 26, 28 и 29), а сотрудник 2 - нет. Всего существует 4 правильные пары, поэтому ответ 4.