6,1 数组排序
2015-06-01 17:37
337 查看
题目要求:
给你n个整数,请按从大到小的顺序输出其中前m大的数。
Input
每组测试数据有两行,第一行有两个数n,m(0<n,m<1000000),第二行包含n个各不相同,且都处于区间[-500000,500000]的整数。
Output
对每组测试数据按从大到小的顺序输出前m大的数。
Sample Input
5 3
3 -35 92 213 -644
Sample Output
213 92 3
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int my[1000010];
int main()
{
memset(my,0,sizeof(my));
int n,m,i,in;
while(scanf("%d%d",&n,&m)!=EOF)
{
for(i=0;i<n;i++)
{
scanf("%d",&in);
my[in+500000]=1;
}
for(i=1000000;m>0;i--)
{
if(my[i]==1)
{
printf("%d",i-500000);
if(m>1)
putchar (32);
else
putchar (10);
m--;
}
}
}
return 0;
}
给你n个整数,请按从大到小的顺序输出其中前m大的数。
Input
每组测试数据有两行,第一行有两个数n,m(0<n,m<1000000),第二行包含n个各不相同,且都处于区间[-500000,500000]的整数。
Output
对每组测试数据按从大到小的顺序输出前m大的数。
Sample Input
5 3
3 -35 92 213 -644
Sample Output
213 92 3
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int my[1000010];
int main()
{
memset(my,0,sizeof(my));
int n,m,i,in;
while(scanf("%d%d",&n,&m)!=EOF)
{
for(i=0;i<n;i++)
{
scanf("%d",&in);
my[in+500000]=1;
}
for(i=1000000;m>0;i--)
{
if(my[i]==1)
{
printf("%d",i-500000);
if(m>1)
putchar (32);
else
putchar (10);
m--;
}
}
}
return 0;
}
相关文章推荐
- 百度之星2015初赛第二场
- Guice学习(一)
- [oc学习笔记]数组的遍历和排序
- ios app 生命周期
- BZOJ_1004 Cards
- 快速高斯模糊(IIR递归高斯模糊)
- 通过Hook ZwCreateProcess获取进程全路径(缓存问题解决方案)
- qt4 向 qt5 迁移
- 6,1 切蛋糕
- AndroidEventBus新特性:添加粘性事件、不需要手动注销事件总线
- 理解MySQL——索引与优化
- android源码使用proguard混淆编译及错误总结
- storyboard
- 犀牛——第5章语句
- 第13周 读程序答题-3
- 第十一周 项目四 类族的设计】
- 获取Android系统memory的使用情况的脚本
- uiwebview和 js交互框架
- How to install redis server on CentOS 7 / RHEL 7
- flatbuffers 和netty的结合使用