PAT 1012. The Best Rank (25)

http://www.patest.cn/contests/pat-a-practise/1012

这题比较坑啊, 没说明白如果成绩相同怎么排序, 例如  1 2 2 3  那3是排第三还是排第四? 两个2怎么排, 两个第二, 没有第三, 3排第四

 1 #include<stdio.h>
 2 #include<string.h>
 3 #include<math.h>
 4 
 5 #define MAXN  2010
 6 #define INF 10000000;
 7 int n, m;
 8 int id[MAXN];
 9 int C[MAXN], M[MAXN], E[MAXN], A[MAXN];
10 int sortedC[102], sortedM[102], sortedE[102], sortedA[102];
11 int hash[1000010];
12 int main() {
13     memset(hash, -1, sizeof(hash));
14     memset(sortedC, 0, sizeof(sortedC));
15     memset(sortedM, 0, sizeof(sortedM));
16     memset(sortedE, 0, sizeof(sortedE));
17     memset(sortedA, 0, sizeof(sortedA));
18     scanf("%d%d", &n, &m);
19     for (int i = 0; i < n; ++i) {
20         scanf("%d %d %d %d", &id[i], &C[i], &M[i], &E[i]);
21         hash[id[i]] = i;
22         sortedC[C[i]]++;
23         sortedM[M[i]]++;
24         sortedE[E[i]]++;
25         A[i] = (C[i] + M[i] + E[i]) / 3;
26         sortedA[A[i]]++;
27     }
28     for (int i = 99; i >= 0; --i) {
29         sortedC[i] += sortedC[i + 1];
30         sortedM[i] += sortedM[i + 1];
31         sortedE[i] += sortedE[i + 1];
32         sortedA[i] += sortedA[i + 1];
33     }
34     for (int i = 0; i < m; ++i) {
35         int id_toquery;
36         scanf("%d", &id_toquery);
37         if (-1 == hash[id_toquery]) {
38             puts("N/A");
39             continue;
40         }
41         int    rank = sortedA[A[hash[id_toquery]] + 1] + 1;
42         char subj = 'A';
43         if (rank > sortedC[C[hash[id_toquery]] + 1] + 1) {
44             rank = sortedC[C[hash[id_toquery]] + 1] + 1;
45             subj = 'C';
46         }
47         if (rank > sortedM[M[hash[id_toquery]] + 1] + 1) {
48             rank = sortedM[M[hash[id_toquery]] + 1] + 1;
49             subj = 'M';
50         }
51         if (rank > sortedE[E[hash[id_toquery]] + 1] + 1) {
52             rank = sortedE[E[hash[id_toquery]] + 1] + 1;
53             subj = 'E';
54         }
55         printf("%d %c\n", rank, subj);
56     }
57     return 0;
58 }

 

posted @ 2015-07-30 09:20  ACSeed  Views(169)  Comments(0)    收藏  举报