九度oj 题目1034:寻找大富翁
题目链接:http://ac.jobdu.com/problem.php?pid=1034
- 题目描述:
-
浙江桐乡乌镇共有n个人,请找出该镇上的前m个大富翁.
- 输入:
-
输入包含多组测试用例.
每个用例首先包含2个整数n(0<n<=100000)和m(0<m<=10),其中: n为镇上的人数,m为需要找出的大富翁数, 接下来一行输入镇上n个人的财富值.
n和m同时为0时表示输入结束.
- 输出:
-
请输出乌镇前m个大富翁的财产数,财产多的排前面,如果大富翁不足m个,则全部输出,每组输出占一行.
- 样例输入:
-
3 1
2 5 -1
5 3
1 2 3 4 5
0 0
- 样例输出:
-
5
5 4 3
这个题目比较简单,思路:
如果n<=m则输入n个数到数组中,然后降序排序,接着直接输出;
若是n>m,则先输入前m个数到数组中。然后当每次输入一个数temp,则判断temp是否比数组中最小的数min大,若是则覆盖掉数组中最小数字min,否则跳过,输入下一个,然后继续……
输入并处理完成后,降序排序,然后输出即可。
代码如下:
#include<stdio.h>
#include<stdlib.h>
int cmp(const void *a,const void *b)
{
return *(int*)b- *(int *)a;
}
int finMinIndex(int a[],int len);//返回a数组最小元素的下标。a数组元素个数为len
int main()
{
int n,m;
int a[]={};
int i;
int mini;
int temp; while(scanf("%d%d",&n,&m)!=EOF)
{
if(n==&&m==) break;
if(n<=m)
{
for(i=;i<n;i++) scanf("%d",&a[i]);
qsort(a,n,sizeof(a[]),cmp);
printf("%d",a[]);
for(i=;i<n;i++) printf(" %d",a[i]);
printf("\n");
}
else
{
for(i=;i<m;i++)
{
scanf("%d",&a[i]);
}
for(i=m;i<n;i++)
{
scanf("%d",&temp);
mini=finMinIndex(a,m);
if(temp>a[mini]) a[mini]=temp;
}
qsort(a,m,sizeof(a[]),cmp);
printf("%d",a[]);
for(i=;i<m;i++) printf(" %d",a[i]);
printf("\n");
}
}
return ;
}
int finMinIndex(int a[],int len)//返回a数组最小元素的下标。a数组元素个数为len
{
int i,minIndex=;
for(i=;i<len;i++)
{
if(a[i]<a[minIndex]) minIndex=i;
}
return minIndex;
}
九度oj 题目1034:寻找大富翁的更多相关文章
- 九度OJ 题目1384:二维数组中的查找
/********************************* * 日期:2013-10-11 * 作者:SJF0115 * 题号: 九度OJ 题目1384:二维数组中的查找 * 来源:http ...
- hdu 1284 关于钱币兑换的一系列问题 九度oj 题目1408:吃豆机器人
钱币兑换问题 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Sub ...
- 九度oj题目&吉大考研11年机试题全解
九度oj题目(吉大考研11年机试题全解) 吉大考研机试2011年题目: 题目一(jobdu1105:字符串的反码). http://ac.jobdu.com/problem.php?pid=11 ...
- 九度oj 题目1007:奥运排序问题
九度oj 题目1007:奥运排序问题 恢复 题目描述: 按要求,给国家进行排名. 输入: 有多组数据. 第一行给出国家数N,要求排名的国家数M,国家号 ...
- 九度oj 题目1087:约数的个数
题目链接:http://ac.jobdu.com/problem.php?pid=1087 题目描述: 输入n个整数,依次输出每个数的约数的个数 输入: 输入的第一行为N,即数组的个数(N<=1 ...
- 九度OJ题目1105:字符串的反码
tips:scanf,cin输入字符串遇到空格就停止,所以想输入一行字符并保留最后的"\0"还是用gets()函数比较好,九度OJ真操蛋,true?没有这个关键字,还是用1吧,还是 ...
- 九度oj题目1009:二叉搜索树
题目描述: 判断两序列是否为同一二叉搜索树序列 输入: 开始一个数n,(1<=n<=20) 表示有n个需要判断,n= 0 的时候输入结束. 接 ...
- 九度oj题目1002:Grading
//不是说C语言就是C++的子集么,为毛printf在九度OJ上不能通过编译,abs还不支持参数为整型的abs()重载 //C++比较正确的做法是#include<cmath.h>,cou ...
- 九度OJ题目1003:A+B
while(cin>>str1>>str2)就行了,多简单,不得不吐槽,九度的OJ真奇葩 题目描述: 给定两个整数A和B,其表示形式是:从个位开始,每三位数用逗号", ...
随机推荐
- php短路与 短路或
关于php短路的问题特性,三种写法的区别 $a = 1;$b=0;第一种: $a && $b = 'cccccccc';第二种 $a || $b = 'cccccccc';第三种 if ...
- c语言完成分块查找
首先要把一系列数组均匀分成若干块(最后一个可以不均匀) 每块中元素任意排列,即块中数字无序,但是整个块之间要有序.因此也存在局限性. #include<stdio.h> //分块查找法 v ...
- 关于extra加强延迟加载
一对多和多对多关联的查询策略 lazy属性的另一个属性extra 加强延迟加载 表明采用增强延迟加载策略:在<set>元素配置lazy属性为"extra".增强延迟加载 ...
- linux hugepage
The intent of this file is to give a brief summary of hugetlbpage support inthe Linux kernel. This ...
- 并发编程 04——闭锁CountDownLatch 与 栅栏CyclicBarrier
Java并发编程实践 目录 并发编程 01—— ThreadLocal 并发编程 02—— ConcurrentHashMap 并发编程 03—— 阻塞队列和生产者-消费者模式 并发编程 04—— 闭 ...
- uva 1660 & poj 1966(点连通度)
Cable TV Network Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 4267 Accepted: 2003 ...
- iOS基础篇(十五)——UIScrollView的基本用法
滚动视图(UIScrollView)通常用于显示内容尺寸大于屏幕尺寸的视图. 一.基本属性 1.CGSize contentSize :设置UIScrollView的滚动范围 2.CGPoint co ...
- ASP.NET中使用代码来进行备份和还原数据库
ASP.NET中使用代码来进行备份和还原数据库 SQL代码: 1 2 3 4 5 -- 备份数据库 backup database db_CSManage to disk='c:\backup.ba ...
- IIS调试技巧
VS2010如何调试IIS上的网站 通常,我们在Visual Studio里调试ASP.NET网站,都是加个断点,然后按F5,在VS自带的虚拟服务器下调试的.但有时候,VS自带的服务器弱爆了,无法满足 ...
- 1-5Tomcat 目录结构 和 web项目目录结构
对应我的安装路径: web项目目录结构