zcmu-4955: 查找最小的k个元素(水到怀疑人生)

Description

输入n个正整数(可以有重复的情况出现),输出其中最小的k个(如有重复的情况出现,重复输出),其中1≤k≤n≤10000,每个正整数小于10000。例如输入1、4、8、2、5、7、6、3这8个数字,则最小的4个数字为1、2、3、4。

Input

第一行,n和k,用空格隔开。

n个整数,用空格隔开。

Output

最小的k个正整数,且从小到大排序,用空格隔开。

Sample Input

8 4 1 2 3 4 5 6 7 8

Sample Output

1 2 3 4

刚开始还打算拿hash写... 

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cmath>
#include <cstring>
using namespace std;
const int manx = 1e4 + 5;
int a[manx];
int main() {
    memset(a,0,sizeof(a));
    int n,k;
    cin>>n>>k;
    for(int i = 0 ; i < n ; i ++)
    {
       cin>>a[i];
    }
    sort(a,a + n);
    for(int i = 0; i < k;i++)
    {
        if(!i)
            printf("%d",a[i]);
        else
            printf(" %d",a[i]);
    }
    printf("\n");
    return 0;
}

猜你喜欢

转载自blog.csdn.net/hzyhfxt/article/details/82502106