单科成绩优秀奖问题

某学校的期末考试共有n个学生参加,考试科目共有m科,学校将会给一部分学生颁发单科成绩优秀奖,获奖学生需要满足的条件是某一科的成绩是所有学生中最高的或是最高的之一请问学校应该给多少名学生颁发单科成绩优秀奖/* 输入第一行包含两个正整数n和m,分别代表学生人数和考试科目数量。 (n,m <= 500) 接下来有n行,每行有m个正整数,每个正整数在1-100之间,中间用空格隔开,...
摘要由CSDN通过智能技术生成

某学校的期末考试共有n个学生参加,考试科目共有m科,学校将会给一部分学生颁发单科成绩优秀奖,获奖学生需要满足的条件是某一科的成绩是所有学生中最高的或是最高的之一
请问学校应该给多少名学生颁发单科成绩优秀奖

/* 输入第一行包含两个正整数n和m,分别代表学生人数和考试科目数量。
   (n,m <= 500)
   接下来有n行,每行有m个正整数,每个正整数在1-100之间,中间用空格隔开,
   表示每个学生的m科考试成绩 

   思路:将获取m科成绩放在m个红黑树map中,按成绩从大到小排列,人的序号作为值,
        循环从m个map中获取最高成绩(一科可能有多个最高成绩),将人的序号放在一个hash set中,
        返回这个hash set中元素数量即可
*/

#include <iostream>
#include <vector>
#include <algorithm>
#include <map>
#include <unordered_set>
using namespace std;

int getAwardsNum(vector<multimap<int, int, greater<int>>></
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值