当前位置: 首页 > news >正文

c++ 成绩统计

Q:

有一个二维表格数据,它的值全部是整数,其中存储了若干个选手参与5分钟汉字输入比赛的成绩。数据中每一行是一条记录,每条记录包含两个整数,第1个整数为选手编号,它应该是一个4位整数;第2个整数是汉字输入比赛成绩,应该是一个小于等于1000的非负整数。数据中每个选手最多可能有2条记录。编写程序删除数据中的无效记录和每个选手的多余记录,每个选手只保留有效成绩中成绩最高的一条记录,然后返回成绩排名第2的选手编号(当成绩相同时编号小的选手在前),如果不足2个选手,则返回第1的选手编号。注意:测试数据保证按照要求删除数据后,至少有一条记录。

相关说明

输入条件

  1. 输入的二维表格数据中的数据一定全部是整数,
  1. 二维表格数据中每一行一定是两个整数

输出要求

  1. 输出选手的编号一定是一个4位整数

其它要求

将代码写入函数func4

测试用例:

输入

返回

[[1,2] ,[1022,888]]

1022

[[1,2],[1022,888],[1011,888]]

1022

[[1,2],[1011,888],[1011,800]]

1011

[[1,2],[1011,888],[1011,800],[1025,45]]

1025

#include <bits/stdc++.h>
#include <cstring>
using namespace std;//=================================================
// 说明:编程题4
// 参数说明: vector<vector<int> >& records: 二维整型向量,每一行表示一条记录
// 返回值: 返回成绩排名第2的选手编号(当成绩相同时编号小的选手在前)
//=================================================
int cmp(pair<int,int> p1,pair<int,int> p2){if (p1.second == p2.second)return p1.first<=p2.first;return p1.second>=p2.second;}
int func4(vector<vector<int> >& records)
{unordered_map<int,int> valid_records;for (auto r : records){int id = r[0];int score = r[1];if (score>=0 && score<=1000){if (valid_records.find(id)!= valid_records.end())valid_records[id] = max(score,valid_records[id]);else valid_records[id] = score;}}vector<pair<int,int>> result;for (auto vr : valid_records)result.push_back(make_pair(vr.first,vr.second));sort(result.begin(),result.end(),cmp);if (result.size()>1)cout<<result[1].first;else cout<<result[1].first;}
int main(){vector<vector<int> > records;records.push_back({1,2});records.push_back({1011,800});records.push_back({1015,888});records.push_back({1011,888});records.push_back({1025,45});func4(records);}
http://www.lryc.cn/news/128617.html

相关文章:

  • PostgreSQL-UDF用户自定义函数-扩展插件
  • 接口测试及接口抓包常用测试工具和方法?
  • C语言入门_Day 6布尔数与比较运算
  • Java中的JDBC
  • Vue 安装开发者工具
  • oracle修改临时表出现已使用的事务正在处理临时表问题
  • RestTemplate
  • rabbitMQ服务自动停止(已解决
  • Qt平滑弹出页面
  • 第07天 Static关键字作用及用法
  • Redis扩容与一致性Hash算法解析
  • 【第七讲---视觉里程计1】
  • Linux: sched: might_sleep; 一个调试函数,演变为真实的睡眠函数,实至名归
  • (三) 搞定SOME/IP通信之CommonAPI库
  • windows bat脚本,使用命令行增加/删除防火墙:入站-出站,规则
  • Stable Diffusion 告别复制关键词,高质量提示词自动生成插件
  • 【学习日记】【FreeRTOS】任务调度时如何考虑任务优先级——任务的自动切换
  • C语言暑假刷题冲刺篇——day3
  • Taro+vue3小程序开启分享他人和分享到朋友圈
  • JAVA-Spring中IOC容器是什么?
  • QT多屏显示程序
  • python使用xlwt时,报ValueError: More than 4094 XFs (styles)
  • GitHub 打不开解决方案
  • Java网络编程(一)网络基础
  • matlab使用教程(17)—多项式的定义和运算
  • 华为认证 | 这门HCIA认证正式发布!
  • 【Docker】Docker安装 MySQL 8.0,简洁版-快速安装使用
  • CSS自己实现一个步骤条
  • Visual Studio 2019 解决scanf函数报错问题
  • 亚马逊无限买家号如何注册?