Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from typing import Dict, List, Set
- from copy import deepcopy
- from itertools import combinations
- def take_input() -> Dict[str, int]:
- names: List[str] = input().split(',')
- birthdates: List[int] = [int(i) for i in input().split(',')]
- return dict(zip(names, birthdates))
- def reverse_dict(original: Dict[str, int]) -> Dict[int, Set[str]]:
- rev_dict: Dict[int, Set[str]] = {}
- for key, value in original.items():
- rev_dict.setdefault(value, set()).add(key)
- return rev_dict
- def get_duplicates(rev_dict) -> List[Set[str]]:
- return [value for key, value in rev_dict.items() if len(value) > 1]
- def main() -> None:
- birth_dict = deepcopy(take_input())
- rev_dict = deepcopy(reverse_dict(birth_dict))
- duplicates = deepcopy(get_duplicates(rev_dict))
- duplicates_sorted: str = ''
- for items in duplicates:
- items: List[str] = list(items)
- items.sort()
- if len(items) > 2:
- for c in combinations(items, 2):
- c: List[str] = list(c)
- c.sort()
- duplicates_sorted += ','.join(c) + '\n'
- else:
- duplicates_sorted += ','.join(items) + '\n'
- print(duplicates_sorted, end='')
- if __name__ == '__main__':
- main()
Advertisement
Add Comment
Please, Sign In to add comment