HackerRank No Idea! Solution
There is an array of integers. There are also disjoint sets, and , each containing integers. You like all the integers in set and dislike all the integers in set . Your initial happiness is . For each integer in the array, if , you add to your happiness. If , you add to your happiness. Otherwise, your happiness does not change. Output your final happiness at the end.
Note: Since and are sets, they have no repeated elements. However, the array might contain duplicate elements.
The first line contains integers and separated by a space.
The second line contains integers, the elements of the array.
The third and fourth lines contain integers, and , respectively.
Output a single integer, your total happiness.
3 2 1 5 3 3 1 5 7
You gain unit of happiness for elements and in set . You lose unit for in set . The element in set does not exist in the array so it is not included in the calculation.
Hence, the total happiness is .
Solution in Python3
n,m = map(int,input().split()) N = list(map(int,input().split())) A = set(map(int,input().split())) B = set(map(int,input().split())) #Union set A & B C = A | B #Exclude all numbers which doesn't exit in both A & B N = (i for i in N if i in C) #Add 1 if number is in set A else subtract 1 print(sum(1 if i in A else -1 for i in N ))