1236:排名
2015-08-29 17:30
239 查看
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1236
方法:多关键字排序
思路:这道题本身不算难,没有涉及算法,但是比较考验基本功,因此还是有一定价值的,在初期可以训练多目标排序的编码能力。
难点:多关键字排序
方法:多关键字排序
思路:这道题本身不算难,没有涉及算法,但是比较考验基本功,因此还是有一定价值的,在初期可以训练多目标排序的编码能力。
难点:多关键字排序
#include<cstdio> #include<algorithm> #include<string.h> using namespace std; struct student { char nummer[100]; int solve_num; int solve[30]; int sum; }ss[1000+100]; bool cmp(student a,student b) { if(a.sum!=b.sum) return a.sum>b.sum; else if(a.sum == b.sum) return strcmp(a.nummer,b.nummer)<0; } int main() { int stu,num,ave;//考生人数,考题数,要求平均成绩 int i,j; int score[110]={0}; while(~scanf("%d %d %d",&stu,&num,&ave)) { if(stu == 0) break; for(i = 1;i <= num;i++) scanf("%d",&score[i]); for(i = 0;i < stu;i++) { ss[i].sum = 0; scanf("%s",&ss[i].nummer); scanf("%d",&ss[i].solve_num); for(j = 0;j < ss[i].solve_num;j++) { scanf("%d",&ss[i].solve[j]); ss[i].sum = ss[i].sum+score[ss[i].solve[j]]; } } sort(ss,ss+stu,cmp); int counter = 0; for(i = 0;i < stu;i++) if(ss[i].sum>=ave) counter++; printf("%d\n",counter); for(i = 0;i < stu;i++) { if(ss[i].sum>=ave) { printf("%s",ss[i].nummer); printf(" "); printf("%d\n",ss[i].sum); } } } }
相关文章推荐
- PHP定时执行任务/Cron Job
- 循环-02. 计算圆周率(15)
- 红色警戒2修改器原理百科(二)
- MYSQL字段
- ThinkPHP多个分页的实现
- [leetcode] 141.Linked List Cycle
- UI 19 数据库
- ICPC 7096 A Rational Sequence
- 记录一些PHP7RCC1编译问题
- 子元素使用float后使父元素有高度的方法
- 代码格式化工具 sourceInsight editplus ultraedit keil
- 44_02 nginx
- 求二叉树中两个节点的最低公共祖先
- Scala 深入浅出实战经典 第68讲:Scala并发编程原生线程Actor、Cass Class下的消息传递和偏函数实战解析
- 小而精,小而美的一款开源的迷你框架Underscore.js
- 编写一个程序,将a.txt文件中的单词与b.txt文件中的单词交替合并到c.txt文件中,a.txt文件中的单词用回车符分隔,b.txt文件中用回车或空格进行分隔。
- 循环-01. 求整数段和(15)
- POJ 3162 - Walking Race(树形DP)
- Windows 2003密码重置
- Java集合类详解