Setに対して操作を行う問題です.
# ITP2_7_A
n = int(input())
S = set()
for _ in range(n):
query = list(map(int,input().split(" ")))
# insert: add で追加
if query[0] == 0:
S.add(query[1])
print(len(S)) # 長さの報告
# find
else:
print(int(query[1] in S))
# ITP2_7_B
# insert, find は ITP2_7_A と同じ
n = int(input())
S = set()
for _ in range(n):
query = list(map(int,input().split(" ")))
# insert: add で追加
if query[0] == 0:
S.add(query[1])
print(len(S)) # 長さの報告
# find
elif query[0] == 1:
print(int(query[1] in S))
# delete: romoveで削除する
else:
# 存在しない場合に削除しようとするとエラーになる
if query[1] in S:
S.remove(query[1])
# ITP2_7_C
# insert, find, delete は ITP2_7_B と同じ
n = int(input())
S = set()
for _ in range(n):
query = list(map(int,input().split(" ")))
# insert: add で追加
if query[0] == 0:
S.add(query[1])
print(len(S)) # 長さの報告
# find
elif query[0] == 1:
print(int(query[1] in S))
# delete: romoveで削除する
elif query[0] == 2:
# 存在しない場合に削除しようとするとエラーになる
if query[1] in S:
S.remove(query[1])
# dump
else:
L,R = query[1],query[2]
# 単純にループを回すと時間が切れるので S の長さで処理を変えました
if len(S) < R-L:
num_list = []
for x in sorted(S):
if L <= x <= R:
print(x)
else:
for i in range(L,R+1):
if i in S:
print(i)
# insert, find, delete は ITP2_7_B と同じ
n = int(input())
S = set()
cnt_dict = {}
length = 0
sorted_key= False
for _ in range(n):
query = list(map(int,input().split(" ")))
# insert: add で追加
if query[0] == 0:
if query[1] not in cnt_dict.keys():
S.add(query[1])
cnt_dict[query[1]] = 1
else:
if cnt_dict[query[1]] == 0:
S.add(query[1])
cnt_dict[query[1]] += 1
length += 1
sorted_key = False
print(length) # 長さの報告
# find
elif query[0] == 1:
if query[1] in S:
print(cnt_dict[query[1]])
else:
print(0)
# delete: romoveで削除する
elif query[0] == 2:
# 存在しない場合に削除しようとするとエラーになる
if query[1] in S:
S.remove(query[1])
length -= cnt_dict[query[1]]
cnt_dict[query[1]] = 0
# dump
else:
L,R = query[1],query[2]
if not sorted_key:
key_list = list(cnt_dict.keys())
key_list.sort()
sorted_key = key_list
if len(sorted_key) <= R-L:
for key in sorted_key:
if L <= key <= R:
cnt = cnt_dict[key]
for _ in range(cnt):
print(key)
else:
for key in range(L,R+1):
if key in S:
cnt = cnt_dict[key]
for _ in range(cnt):
print(key)