1236:排名
来源:互联网 发布:软件自动汉化工具 编辑:程序博客网 时间:2024/05/01 22:30
题目链接: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); } } }}
0 0
- 排名 1236
- 1236排名
- 1236:排名
- hdoj 1236 排名
- HDU 1236 排名
- HDU-1236 排名
- HDU 1236 ( 排名 )
- hdu 题目1236 排名
- hdu-1236--排名
- hdu 1236 排名
- 【HDOJ】1236 -> 排名
- hdu 1236 排名
- HDU 1236 排名
- hdu-1236-排名
- HDU 1236 排名
- HDU 题目1236 排名
- hdu 1236 排名
- hdu 1236 排名
- 小而精,小而美的一款开源的迷你框架Underscore.js
- Java集合类详解
- cascade.xml参数解析
- 编写一个程序,将a.txt文件中的单词与b.txt文件中的单词交替合并到c.txt文件中,a.txt文件中的单词用回车符分隔,b.txt文件中用回车或空格进行分隔。
- Android屏幕适配全攻略(最权威的官方适配指导)
- 1236:排名
- 子元素使用float后使父元素有高度的方法
- 《JAVA 核心技术 基础知识》 第十章 笔记
- lodash 中文学习拾零之Array篇
- UI 19 数据库
- [leetcode] 141.Linked List Cycle
- 一句SQL语句,可能就是一个定时炸弹
- MFC Radio Button 使用 分组 RadioButton 用法
- Android 自定义弹窗 Dialog