来看看题:
题目描述
学校正在选举学生会成员,有 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<iostream>
#include<cstdio>
//#include<cmath>
//#include<cstring>
#include<algorithm>
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<iostream>
#include<cstdio>
//#include<cmath>
//#include<cstring>
#include<algorithm>
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;
}
博客讲述了洛谷上的一道编程题目,关于选举学生会成员的选票排序。题目要求对n个候选人(编号1到n)的m张选票按数字从小到大排序,输入包括n、m和选票编号。由于初始代码中数组大小不足导致运行错误,修正后得到正确答案。
578

被折叠的 条评论
为什么被折叠?



