某个推荐系统会推荐出一系列的视频和图片结果,视频用V表示,图片用P表示,现在需要对推荐系统返回的结果进行打散,使得【图片P】的结果每N个里面最多出现1个,并且保证图片最早出现的位置不变,图片之前的相对顺序不变; 例如:"V_0", "V_1", "V_2", "P_3", "P_4", "P_5", "V_6", "P_7", "V_8", "V_9" 表示: 10个结果中,位置 [0 1 2 6 8 9] 是 视频V的结果;位置 [3 4 5 7] 是 图片P的结果; 如果 要求 图片P 每3个里最多出1个,那么打散后的结果为: "V_0", "V_1", "V_2", "P_3", "V_6", "V_8", "P_4", "V_9" (P_5 和 P_7 满足不了打散要求 被删除) 如果 要求 图片P 每2个里最多出1个,那么打散后的结果为: "V_0", "V_1", "V_2", "P_3", "V_6", "P_4", "V_8", "P_5", "V_9", "P_7"
输入描述:
第1行输入为一个整数N(1~10),表示每N个结果里最多出1个图片结果;第2行输入为一个整数M(1~100),表示有M个待处理的推荐结果第3行~第2+M行为具体的M个待处理结果,每行具体为:字符串 V_ 或 P_打头,后面接输入时0~M-1的顺序标号
输出描述:
第1行为K,表示打散处理后结果的长度第2~K+1行为打散后的结果,具体为:字符串 V_ 或 P_打头,后面接输入时0~M-1的顺序标号
示例1
输入
3
10
V_0
V_1
V_2
P_3
P_4
P_5
V_6
P_7
V_8
V_9
输出
8
V_0
V_1
V_2
P_3
V_6
V_8
P_4
V_9
加载中...