时空限制1000ms / 4MB
题目背景
EXCEEDED WARNING
题目描述
有这样一些数据,它们均为小于10的9次方的正整数,且个数为n,现在请你输出其中最小的m个数。
小心溢出
Memory Limit=4000KiB
输入输出格式
输入格式:
第一行以半角空格间隔开的两个正整数: n, m
接下来的n行,随机产生的n个数,保证32位整型变量可以存下。
输出格式:
共m行,即题目描述中的m个数,从小到大依次输出。
样例输入:
10 5
2
4
6
8
10
1
3
5
7
9
样例输出:
1
2
3
4
5
数据范围:
m<10^5 n<10^6
思路:
sort排序,short int 存储。。。这是洛谷中以为大佬讲解,int 四个字节,会爆,这个题4MB,10的6次方就爆,所以short int 节省内存。
代码:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int n,m;
short int a[9999999];
int main() {
cin>>n>>m;
for(int i=1; i<=n; i++)
cin>>a[i];
sort(a+1,a+1+n);
for(int i=1; i<=m; i++)
cout<<a[i]<<endl;
return 0;
}