塔子哥使用Stable Diffusion的“图生图”功能生成了一些图片,并为每张图片打了分数。他希望根据自己的经验值选择出分数排名相应的图片作为下一次绘图的参考。输入包括图片的总数、塔子哥的经验值以及每张图片的评分。输出应为符合条件的图片分数和对应的编号,所有信息以空格分隔。
1.我们使用一个集合 st 来记录已经出现的有效分数,和一个向量 items 来存储这些分数以便后续排序。
2.筛选:对于每一张照片的分数 x,我们首先检查它是否大于 20 分。如果不大于 20 分,则不予考虑,直接跳过。对于大于 20 分的分数,我们检查它是否已经在集合 st 中。如果在,则将其出现的下标记录到一个映射 mp 中;如果不在,则将其加入集合和 items 向量,并在映射中初始化它的下标。
小美是一个不那么严谨的经验主义者,他在使用Stable Diffusion“图生图”功能来画好康的图片时总想要选出上一轮最好看的那几张图片作为下一次“图生图”绘画的参考。
更一般的,“图生图”功能绘画的结果是若干张好康的图片,按照生成的先后顺序由1开始向后编号;同时,小美在心里给它们打了一个分数(不同图片分数可能相同),由于AI绘图实在是不稳定,小美决定删掉分数不大于20分的图片;随后小美会根据他阅图无数的经验得到一个经验值,然后选择图片分数排名等于该经验值的图片作为下一次“图生图”绘画的参考。(注意,这里排名采用dense_rank的方式,即分数从大到小排序,相同分数排名相同)。如果不存在排名恰好经验值的,按最大的排名。
小美希望你帮他找出可以作为“图生图”绘画参考的图片,以便于设置绘图的其他参数。
时间限制: C/C++ 1000ms,其他语言: 2000ms 内存限制:C/C++256MB,其他语言:512MB
第一行输入为“图生图”绘制的结果中图片的张数S
第二行输入为小美自认为的经验值Y:
第三行输入为小美给所有图片的评分,评分值以空格分隔。
排序最靠后的那些图片的分数和编号以空格分隔。
输入
1
5
98
输出
98 1
解释
小美的经验值Y=5,所有图片按照评分编号为1的图片被保留,分数为98。因此排序最靠后的那张图片的评分为排位第1、编号为1的入围作品,但是很显然这就是排序最靠后那张图片,那么输出 98 1
输入
14
1
11 45 14 19 19 81 0 11 45 14 19 19 81 0
输出
81 6 13
解释
被保留的图片编号分别为2,6,9,13。按分数排序后为:
81(6) 81(13) 45(2) 45(9)
他们的排名为:
1 1 2 2
y = 1 ,则取rank = 1的输出,81 6 13
输入
14
2
11 45 14 19 19 81 0 11 45 14 19 19 81 0
输出
45 2 9