HDOJ 1236 排名(排序)(浙大2005研究生复试)
2015-02-24 19:45
344 查看
【思路】:排序。
【注意】:qsort用法,字符串不要相减,用strmcp。升序a在前,b在后。降序相反。
【AC代码】:
【注意】:qsort用法,字符串不要相减,用strmcp。升序a在前,b在后。降序相反。
【AC代码】:
#include <iostream> #include <cstdio> #include <cstdlib> #include <cstring> using namespace std; #define MAX 20+2 struct Candidate { char num[MAX]; int score; }; int cmp(const void *a, const void *b) { Candidate *c = (Candidate*)a; Candidate *d = (Candidate*)b; if ((*c).score != ((*d).score)) return (*d).score - (*c).score; else return strcmp(((*c).num), (*d).num); } int main() { //freopen("in.txt", "r", stdin); //freopen("out.txt", "w", stdout); int N = 0, M = 0, G = 0; while (cin >> N >> M >> G && N) { int i = 0, cnt = 0; int sco[10]; Candidate can[1000]; //input score for (i = 0; i < M; i++) cin >> sco[i]; for (i = 0; i < N; i++) { int m = 0, s = 0, sum = 0, j = 0; cin >> can[i].num; cin >> m; for (j = 0; j < m; j++) { cin >> s; sum += sco[s-1]; } can[i].score = sum; if (sum >= G) cnt++; } //sort qsort(can, N, sizeof(Candidate), cmp); cout << cnt << endl; for (i = 0; i < N; i++) if (can[i].score >= G) cout << can[i].num << " " << can[i].score << endl; } return 0; }
相关文章推荐
- HDOJ 1234 开门人和关门人(排序)(浙大2005研究生复试)
- (ZJU-2005复试)-HDOJ-1236-排名
- HDOJ 1236 排名(结构体成员的 sort 排序方法)
- 2005年浙大研究生复试上机真题-排名
- 2007年浙大研究生复试机试真题-EXCEL排序
- 畅通工程续(2008浙大研究生复试热身赛[最短路径] hdoj 1874)
- 九度考研真题 浙大 2005-2浙大1014:排名 多重排序
- 浙大研究生复试上机考试2005——畅通工程
- 2008浙大研究生复试热身赛_Floyd_Dijkstra_hdoj1874
- HDOJ 1236,九度 :排名 简单的排序
- 2005年浙大研究生复试上机真题-开门人与关门人
- 2007年浙大研究生复试机试真题-最小长方形
- MS SQL 2005 四个排序函数ROW_NUMBER、RANK、DENSE_RANK 和 NTILE简介用法/结果排名排序
- HDOJ 1236 排名
- 2007年浙大研究生复试机试真题-游船出租
- (ZJU-2005复试)-HDOJ-1231-最大连续子序列
- 2005年浙大研究生复试上机真题-最大连续子序列
- 继续畅通工程(2008浙江大学研究生复试上机题[最小生成树] hdoj 1879 )
- 排名(浙大上机2005)
- 浙大计算机研究生复试上机考试-2007年_Prim_Kruskal_hdoj1863