1012 The Best Rank

题目链接:https://pintia.cn/problem-sets/994805342720868352/problems/994805502658068480

按照要求输出rank成绩,没能AC,有空再看,下面是代码:

  1 #include<iostream>
  2 #include<vector>
  3 #include<algorithm>
  4 using namespace std;
  5 const char ch[4] = {'A','C','M','E'};
  6 struct id{
  7     string num;
  8     int e,c,m,a;
  9     int e_order,c_order,m_order,a_order;
 10     void sum(){
 11         a = (e+c+m)/3+0.5;
 12     }
 13     void best(){
 14         int x = a_order;
 15         int y = 0;
 16         if(c_order < a_order) x = c_order,y = 1;
 17         if(m_order < a_order && m_order < c_order) x = m_order,y = 2;
 18         if(e_order < a_order && e_order < c_order && e_order < a_order) x = e_order,y = 3;
 19         cout << x << " " << ch[y] << endl;
 20     }
 21 };
 22 struct pai{
 23     int score;
 24     int n;
 25     friend bool operator <(pai v1,pai v2){
 26         return v2.score < v1.score;
 27     }
 28 };
 29 
 30 int main(){
 31     int n,m;
 32     cin >> n >> m;
 33     id x;
 34     pai pa,pc,pm,pe;
 35     vector<id> vec_id;
 36     vector<pai> vec_c;
 37     vector<pai> vec_m;
 38     vector<pai> vec_e;
 39     vector<pai> vec_a;
 40     for(int i = 0; i < n; i++){
 41         cin >> x.num >> x.c >> x.m >> x.e;
 42         x.sum();
 43         vec_id.push_back(x);
 44         pa.n = i;
 45         pa.score = x.a;
 46         vec_a.push_back(pa);
 47         pc.n = i;
 48         pc.score = x.c;
 49         vec_c.push_back(pc);
 50         pe.n = i;
 51         pe.score = x.e;
 52         vec_e.push_back(pe);
 53         pm.n = i;
 54         pm.score = x.m;
 55         vec_m.push_back(pm);
 56     }
 57     sort(vec_a.begin(),vec_a.end());
 58     sort(vec_m.begin(),vec_m.end());
 59     sort(vec_c.begin(),vec_c.end());
 60     sort(vec_e.begin(),vec_e.end());
 61 //    for(int i = 0; i < n; i++){
 62 //        cout << vec_a[i].score << endl;
 63 //    }
 64     for(int i = 0; i < n; i++){
 65         vec_id[vec_a[i].n].a_order = i+1;
 66         vec_id[vec_c[i].n].c_order = i+1;
 67         vec_id[vec_m[i].n].m_order = i+1;
 68         vec_id[vec_e[i].n].e_order = i+1;
 69     }
 70     /*int paiming = 1;
 71     for(int i = 0; i < n; i++){
 72         if(i > 0 && vec_a[i].score != vec_a[i-1].score)
 73             paiming = i+1;
 74         vec_id[vec_a[i].n].a_order = paiming;
 75     }
 76     paiming = 1;
 77     for(int i = 0; i < n; i++){
 78         if(i > 0 && vec_c[i].score != vec_c[i-1].score)
 79             paiming = i+1;
 80         vec_id[vec_c[i].n].c_order = paiming;
 81     }
 82     paiming = 1;
 83     for(int i = 0; i < n; i++){
 84         if(i > 0 && vec_m[i].score != vec_m[i-1].score)
 85             paiming = i+1;
 86         vec_id[vec_m[i].n].m_order = paiming;
 87     }
 88     paiming = 1;
 89     for(int i = 0; i < n; i++){
 90         if(i > 0 && vec_e[i].score != vec_e[i-1].score)
 91             paiming = i+1;
 92         vec_id[vec_e[i].n].e_order = paiming;
 93     }*/
 94     string s;
 95     while(m--){
 96         cin >> s;
 97         bool flag = false;
 98         for(int i = 0; i < n; i++){
 99             if(vec_id[i].num == s) vec_id[i].best(),flag = true;
100         }
101         if(!flag) cout << "N/A" << endl;
102     }
103 //    vector<pai> vec;
104 //    pai p1,p2,p3;
105 //    p1.score = 2;
106 //    p1.n = 1;
107 //    p2.score = 5;
108 //    p3.score = 3;
109 //    vec.push_back(p1);
110 //    vec.push_back(p2);
111 //    vec.push_back(p3);
112 //    sort(vec.begin(),vec.end());
113 //    for(int i = 0; i < 3; i++){
114 //        cout << vec[i].score;
115 //    }
116     return 0;
117 }

 

转载于:https://www.cnblogs.com/huhusw/p/9755110.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值