ps | |
---|---|
링크 | acmicpc.net/… |
출처 | BOJ |
문제 번호 | 28277 |
문제명 | 뭉쳐야 산다 |
레벨 | 플래티넘 5 |
분류 |
smaller to larger |
시간복잡도 | O(nlogn+q) |
인풋사이즈 | n<=500,000, q<=500,000 |
사용한 언어 | Python 3.11 |
제출기록 | 203132KB / 1632ms |
최고기록 | 1632ms |
해결날짜 | 2023/12/20 |
"""Solution code for "BOJ 28277. 뭉쳐야 산다".
- Problem link: https://www.acmicpc.net/problem/28277
- Solution link: http://www.teferi.net/ps/problems/boj/28277
Tags: [small to large]
"""
import sys
def main():
N, Q = [int(x) for x in sys.stdin.readline().split()]
S = []
for _ in range(N):
# pylint: disable=unused-variable
n_i, *s_i = sys.stdin.readline().split()
S.append(set(s_i))
for _ in range(Q):
match sys.stdin.readline().split():
case ['1', a, b]:
a, b = int(a) - 1, int(b) - 1
if len(S[a]) < len(S[b]):
S[a], S[b] = S[b], S[a]
S[a].update(S[b])
S[b].clear()
case ['2', a]:
print(len(S[int(a) - 1]))
if __name__ == '__main__':
main()