洛谷:P1271 【深基9.例1】选举学生会

来看看题:
题目描述
学校正在选举学生会成员,有 n(n≤999) 名候选人,每名候选人编号分别从 1 到 n,现在收集到了 m(m<=2000000)张选票,每张选票都写了一个候选人编号。现在想把这些堆积如山的选票按照投票数字从小到大排序。输入 n 和 m 以及 m 个选票上的数字,求出排序后的选票编号。

输入格式

输出格式

输入输出样例
输入
5 10
2 5 2 2 5 2 2 2 1 2
输出
1 2 2 2 2 2 2 2 5 5
这道题相信有点基础的人都会吧!
用sort就行了!
代码如下:

#include
#include
//#include
//#include
#include
using namespace std;
int main() {
	int n,m;
	scanf("%d%d",&n,&m);
	int a[1001];
	for(int i=1;i<=m;i++)
		scanf("%d",&a[i]);
	sort(a+1,a+m+1);
	for(int i=1;i<=m;i++)
		printf("%d ",a[i]);
	printf("\n");
	return 0;
}

但只有60分,有两个RE
原来是数组开小了:m(m<=2000000)
AC代码如下:

#include
#include
//#include
//#include
#include
using namespace std;
int main() {
	int n,m;
	scanf("%d%d",&n,&m);
	int a[2000001];
	for(int i=1;i<=m;i++)
		scanf("%d",&a[i]);
	sort(a+1,a+m+1);//sort排序
	for(int i=1;i<=m;i++)
		printf("%d ",a[i]);
	printf("\n");
	return 0;
}

你可能感兴趣的:(c++)