这道题其实写代码不难,最难的是理解题意,这题目描述多少有麻烦了。
#输出格式
#总个数a (Ri 包含Ri的个数b b对数据:包含Ri的数据的下标+该数据) * len(R)组
#简单模拟题
I=[int(i) for i in input().split()][1:]
R=sorted(set([int(i) for i in input().split()][1:]))#去重排序
ans={}#键为有用的Ri,值为[该Ri对应的Ii的下标,Ii]
for i in R:
for j in range(len(I)):#由于I中的值有重复,所以要按索引遍历
if str(i) in str(I[j]):#这个i有用,存起来
if i in ans:
ans[i].append([j,I[j]])
else:
ans[i]=[[j,I[j]]]
a=sorted(ans)#对ans的键排序
sum=0#输出的总个数
res=[]#输出的个数后面的所有内容
for i in a:#按照升序遍历ans的键
res.append(i)
res.append(len(ans[i]))#有多少组
for j in ans[i]:
res.append(j[0])#下标
res.append(j[1])#值
sum=len(res)
res=[str(i) for i in res]
print(str(sum)," ".join(res))

京公网安备 11010502036488号