输入n个正整数(可以有重复的情况出现),输出其中最小的k个(如有重复的情况出现,重复输出),其中1≤k≤n≤10000,每个正整数小于10000。
例如输入1、4、8、2、5、7、6、3这8个数字,则最小的4个数字为1、2、3、4。
再比如输入1、2、2、3、4、5这6个数字,则最小的4个数字为:1、2、2、3(重复的数字可以重复输出,只要输出k个最小数就可以)。
输入格式:
第一行,n和k,用空格隔开。
第二行,n个整数,用空格隔开。
输出格式:
最小的k个正整数,且从小到大排序,用空格隔开。
输入样例:
在这里给出一组输入。例如:
8 4
1 2 3 4 5 6 7 8
输出样例:
在这里给出相应的输出。例如:
1 2 3 4
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
栈限制
8192 KB
#include<stdio.h>
#include<stdlib.h>
int compare(const void *a,const void *b)
{return (*(int *)a-*(int *)b);
}
int main()
{int n,k;scanf("%d %d",&n,&k);int a[10001];for(int i=0;i<n;i++)scanf("%d",&a[i]);qsort(a,n,sizeof(int),compare);for(int i=0;i<k;i++)printf("%d ",a[i]);return 0;
}