洛谷 P2369 EXCEEDED WARNING A

时空限制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

#include

#include

#include

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<

return 0;

}

你可能感兴趣的:(洛谷 P2369 EXCEEDED WARNING A)