来源
医学院计概2015(高良才)-沈熳婷
描述
北大校医院最近更新了自己的网上排号系统,考虑到病人的病情程度不同,需要优先考虑病情较重的病人,病情相同的情况下需要把先在网上挂号的病人排在前面。现在给出了请求在同一天看病的n个病人网上挂号的顺序,但是校医院一天只能接收k个病人,请输出校医院当天接收的所有病人的看病顺序。
关于输入
第一行:一个整数t,表示数据的组数:
对于每组数据,分别有两行:
第一行:两个整数n 和k (k不一定小于n),表示请求在同一天看病的病人有n个,医院当天只能接受k个病人
第二行:n个整数,第i个整数表示第i个在网上挂号的病人的病情严重程度
关于输出
对每组数据输出两行:
第一行:一个整数m(m<=k),表示医院当天实际接受的病人的个数
第二行:一个整数序列,包含m个整数,用空格隔开,最后一个整数之后是一个换行符,表示医院当天看病的安排,第i个整数表示医院当天接收的第i个病人在原先挂号序列当中的序号。
例子输入
2
5 3
2 3 4 7 4
6 2
5 10 4 6 9 7
例子输出
3
4 3 5
2
2 5
提示
例子输入输出中一共有两组数据,第一组数据表示当天有5个病人在网上挂号,按照挂号时间先后排列,这五个人的病情程度分别是2,7,4,3,4。同时,医院当天只能接收3个病人。对于第一组数据,医院当天只接收了3个病人,分别是第二个,第三个和第五个(之前5个病人按照病情严重程度排列顺序是4,3,5,2,1)。对第二组数据,严重程度最高的是第2个人,其次是第五个。
#include <stdio.h>
struct number {
int first;
int num;
}num[100];//每个病人的序号(从0开始)和病情严重程度
int main() {
int t = 0;
scanf("%d", &t);