本体需要注意的点,R排序时按数字大小排列,不能按照字符串排列(判断属于时 in 是按照字符串判断)
from collections import OrderedDict
import sys
def print_res(R_list, L_list):
temp_list = []
for r in R_list:
temp_r = []
for i,l in enumerate(L_list):
if r in l:
if r in temp_r:
temp_r[1] += 1
temp_r[2].append((i, l))
else:
temp_r = [r, 1, [(i,l)]] #[r , rcount, [(index, l)]]
else:
if temp_r != []:
temp_list.append(temp_r)
count = 0
for i in temp_list:
for _ in i[2]:
count += 2
count += 2
temp_list = sorted(temp_list, key=lambda x:int(x[0]))
print(count, end=" ")
for i in temp_list:
print(i[0], end=" ")
print(i[1], end=" ")
for j in i[2]:
print(j[0], end=" ")
print(j[1], end=" ")
input_info = sys.stdin.readlines()
for i in range(0, len(input_info),2):
l_list = input_info[i].split()[1:]
l_list = [x.strip() for x in l_list]
r_list = input_info[i+1].split()[1:]
r_list = [x.strip() for x in r_list]
r_list = list(sorted(list(set(r_list))))
print_res(r_list, l_list)
print("")
京公网安备 11010502036488号