上海平台网站制作公司,怎么给公司网站上放视频,太阳代理ip官网,国家住房和城乡建设部中国建造师网站官网Q#xff1a;
有一个二维表格数据#xff0c;它的值全部是整数#xff0c;其中存储了若干个选手参与5分钟汉字输入比赛的成绩。数据中每一行是一条记录#xff0c;每条记录包含两个整数#xff0c;第1个整数为选手编号#xff0c;它应该是一个4位整数#xff1b;第2个整…Q
有一个二维表格数据它的值全部是整数其中存储了若干个选手参与5分钟汉字输入比赛的成绩。数据中每一行是一条记录每条记录包含两个整数第1个整数为选手编号它应该是一个4位整数第2个整数是汉字输入比赛成绩应该是一个小于等于1000的非负整数。数据中每个选手最多可能有2条记录。编写程序删除数据中的无效记录和每个选手的多余记录每个选手只保留有效成绩中成绩最高的一条记录然后返回成绩排名第2的选手编号当成绩相同时编号小的选手在前如果不足2个选手则返回第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
// 参数说明: vectorvectorint records: 二维整型向量每一行表示一条记录
// 返回值 返回成绩排名第2的选手编号(当成绩相同时编号小的选手在前)
//
int cmp(pairint,int p1,pairint,int p2){if (p1.second p2.second)return p1.firstp2.first;return p1.secondp2.second;}
int func4(vectorvectorint records)
{unordered_mapint,int valid_records;for (auto r : records){int id r[0];int score r[1];if (score0 score1000){if (valid_records.find(id)! valid_records.end())valid_records[id] max(score,valid_records[id]);else valid_records[id] score;}}vectorpairint,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)coutresult[1].first;else coutresult[1].first;}
int main(){vectorvectorint 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);}