果园采摘了n个苹果,分别放在若干个篮筐中。现给出n个苹果所在篮筐的情况,请找出每个篮筐中重量最重的苹果。定义一个苹果类Apple,有编号(id)、重量(weight)、直径(diameter)成员变量。

输入格式:
首先输入一个整型数n(1<=n<=999999),表示n个苹果。 紧跟着n行输入,每一行格式为:篮筐号,苹果编号(id),重量(weight),直径(diameter)。 篮筐号为整数,取值区间为[1,999999],id为字符串,weight、diameter为正整数。

输出格式:
按篮筐号从小到大排序,输出每个篮筐中重量最重的苹果信息。题目保证每个篮筐中只有一个重量最重的苹果。

输入样例1:
在这里给出一组输入。例如:

7
1 N000001 175 77
2 N000002 180 83
2 N000003 160 66
1 N000004 160 63
1 N000005 165 68
4 N000006 183 85
2 N000007 170 74

输出样例1:
在这里给出相应的输出。例如:

1 N000001 175 77
2 N000002 180 83
4 N000006 183 85

输入样例2:

4
1 N000001 175 77
2 N000002 180 83
2 N000003 160 66
3 N000004 175 59

输出样例2:

1 N000001 175 77
2 N000002 180 83
3 N000004 175 59


【思路】

由题知,
(1)篮筐的编号是唯一的,与map中的key是唯一的相同,
所以我把“篮筐的编号”作为key,“(该筐最重的苹果)的id”作为value;
(2)苹果的id也是唯一的,可根据苹果的id寻找苹果,所以我定义了一个函数re_Apple完成此功能;


【源代码】

#include <iostream>
#include <vector>
#include <string>
#include <map>
using namespace std;class Apple
{public:string id = "";int weight = 0;int diameter = 0;Apple();Apple(string, int, int);void print_fun(); // 按格式输出id, weight, diameter;~Apple();
};Apple::Apple()
{}
Apple::~Apple()
{}Apple::Apple(const string s, const int weight, const int diameter) // 构造函数;
{this->id = s;this->weight = weight;this->diameter = diameter;
}void Apple::print_fun()
{cout << this->id << " ";cout << this->weight << " ";cout << this->diameter << endl;
}int re_Apple(const int n, const string s, vector<Apple>* A) // 根据苹果id寻找对象并返回;
{for (int i = 0; i < n; i++){if (s == ((*A)[i].id)){return i;}}
}int main()
{int N = 0;cin >> N;map<int, string> Map;vector<Apple> List;int basket = 0;string s = "";int w = 0;int d = 0;for (int i = 0; i < N; i++){cin >> basket;cin >> s;cin >> w >> d;List.push_back(Apple(s, w, d)); // 储存Apple对象;       // 记录当前筐的最大重量的(苹果的id);if (Map.find(basket) == Map.end()) // 没有此篮筐;{Map[basket] = s;}else // 此篮筐存在;{if (w > List[re_Apple(N , Map[basket], &List)].weight) // 保留较大重量的(苹果的id);{Map[basket] = s;}}}map<int, string>::iterator iter;for (iter = Map.begin(); iter != Map.end(); iter++){cout << iter->first << " "; // 先打印篮筐编号;List[re_Apple(N, iter->second, &List)].print_fun();}return 0;
}

这道题与7-2 1.1.2 贪婪的礼物送礼者 (90分)类似,思路一致;

7-2 挑选苹果 (40分)相关推荐

  1. 高中数学40分怎么办_高二数学不会,准高三该怎么办?40分到高考140如何逆袭?...

    原标题:高二数学不会,准高三该怎么办?40分到高考140如何逆袭? 高二,这个年级是有点尴尬的,适应了高一的学习,感觉高二学习没有了动力,离高考还远,于是有些孩子就开始了放任自己,开始了放弃,殊不知高 ...

  2. 天猫公布618战报 苹果2分45秒破亿 你贡献了多少?

    [TechWeb]6月1日消息,618购物节今天正式开始,各家平台相继公布战报.其中,天猫1小时不到成交额就超去年10小时.截至1日11时23分,成交额已超去年6月1日全天业绩. 数据显示,6月1日的 ...

  3. Java黑皮书课后题第1章:1.12(以千米计的平均速度)假设一个跑步者1小时40分35秒跑了24英里。编写一个程序显示以每小时为多少千米为单位的平均速度值(1英里等于1.6千米)

    Java黑皮书课后题第1章:1.12(以千米计的平均速度) 题目 题目描述 破题 代码块 修改日志 题目 题目描述 1.12(以千米计的平均速度)假设一个跑步者1小时40分35秒跑了24英里.编写一个 ...

  4. 计算机专业比重点线高40多分,这3所211大学,超过一本线40分就可报考,性价比高,值得报考...

    985,211大学是我国的重点大学,与普通大学相比,师资力量和学科力量都很强.所以很多考生之所以在高中期间努力学习,就是为了能考入名校,毕业之后能找一份薪资待遇不错的工作.一般来说,综合实力强的学校录 ...

  5. 高中数学40分怎么办_2019年第35届全国高中数学联赛试题及参考答案

    2019年第35届全国高中数学联赛考试已结束,本文收集整理本次数学联赛的试题和参考答案,以供大家了解参考. 本次数学联赛由全国高中数学联赛组委会统一命题,共分为一试和二试. 一试时间为80分钟,包括8 ...

  6. 7-3 素数对猜想 (40 分)

    ** 7-3 素数对猜想 (40 分) ** 让我们定义d n 为:d n=p n+1 −p n ,其中p i​ 是第i个素数.显然有d 1 =1,且对于n>1有d n 是偶数."素数 ...

  7. 7-2 数组元素循环右移问题 (40 分)

    ** 7-2 数组元素循环右移问题 (40 分) ** 一个数组A中存有N(>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(≥0)个位置,即将A中的数据由(A 0 A 1 ⋯ ...

  8. 7-1 图形卡片排序游戏 (40 分)

    ** 7-1 图形卡片排序游戏 (40 分) ** 掌握类的继承.多态性使用方法以及接口的应用.详见[作业指导书2020-OO第07次作业-1指导书V1.0.pdf 输入格式: 首先,在一行上输入一串 ...

  9. 7-5 日期问题面向对象设计(聚合二) (40 分)

    ** 7-5 日期问题面向对象设计(聚合二) (40 分) ** 参考题目7-3的要求,设计如下几个类:DateUtil.Year.Month.Day,其中年.月.日的取值范围依然为:year∈[18 ...

最新文章

  1. 【Windows 逆向】CE 地址遍历工具 ( CE 结构剖析工具 | 遍历查找后坐力数据 | 尝试修改后坐力数据 )
  2. Javascript操纵Cookie--转
  3. 关闭aslr oracle,地址空间布局随机化 (Address Space Layout Randomization, ASLR)
  4. String对象的intern()
  5. HTTP调试之保持连接状态(微软知识库文章)
  6. 撰写论文时word使用技巧(转)
  7. python概率密度函数参数估计_EM算法求高斯混合模型参数估计——Python实现
  8. 【非官方】哈工大2022 形式语言与自动机试题解析
  9. Unity3D游戏框架之dll反编译和混淆
  10. 计算机if函数的作用,if函数的使用方法
  11. ASP Err.Number 错误描述详解
  12. 分享一篇投稿英文期刊该如何回复审稿人的文章
  13. 4行代码实现微信送祝福,这个新年有点不一样
  14. Excel无法打开文件xxx.xlsx,因为文件格式或文件扩展名无效。请确定文件未损坏,并且文件扩展名与文件的格式匹配...
  15. 鲁大师2021年度手机报告:5大“最强”手机揭晓,还有最流畅UI
  16. win10亮度无法调节问题
  17. 资深SRE带你看阿里云香港故障
  18. EndNote X9 闪退解决办法(最简版)
  19. cmd命令,最新的装逼利器
  20. Android音频开发之OpenSL ES

热门文章

  1. 测量耐力也有算法了!仅需锻炼20分钟,就能知晓自己能跑多久
  2. 生活-啤酒鸡 鸡啤酒 酒啤鸡 啤鸡酒- 做法
  3. java实现日期加一天
  4. 查看linux系统是centos还是ubuntu的方法
  5. JavaScript实现动态时钟显示
  6. 【C++】由于找不到xxx.dll,无法继续执行代码,重新安装程序可能会解决此问题。(解决办法)
  7. 人工智能概念类知识点总结
  8. 测试工程师多年面试问题整理
  9. 找回密码功能实现步骤
  10. RFID技术是怎么构成的,主要分为哪几部分?