好!很有精神! (10分)

在这里插入图片描述

海军学校四年级学生衡量一年级学生是否能开军舰靠的是精神值。

精神值的计算公式如下:
value=​times​​D∗length​​

其中的value代表的的是一年级学生的精神值,D代表一年级学生说话声音的分贝,length记录的是说话的句子长度,times记录的是说话的时间。

而他们会按照如下方式对一年级学生进行测试:在单位时间内(即times=1)让一年级学生依次进行自我介绍,同时记录他们说话声音的分贝,和自我介绍的内容。

现在四年级学生们已经采集了所有一年级学生的数据,他们想请你找到一年级学生里最有精神的学生(即value最大的学生),并让他开军舰。现在请你帮帮忙。
输入格式

第一行一个正整数n(1≤n≤2⋅10​4​​),代表一年级学生的人数。

接下来n行,每行输入格式如下:

name D introdutction

其中name为一个长度不超过20的字符串(即1≤∣name∣≤20),D为正整数,且0≤D≤200,introduction为长度不超过100的字符串(即1≤∣introduction∣≤100)。

所有的字符串仅由小写的英文字母组成
输出格式

输出共两行,第一行输出最大的精神值。

第二行按照如下格式输出

XXX:hao!hen you jing shen!

其中XXX请替换成精神值最大的一年级学生的名字。

如果有多个精神值最大的学生,请按照输入顺序依此按上述格式输出一年级学生的名字。
输入样例

1
pingtianyilang 0 aaaaaaa

输出样例

0
pingtianyilang:hao!hen you jing shen!

提示

对于样例,最有精神的学生是pingtianyilang,其精神值为0×6=0

不知道为什么有一个测试点不过,到最后也没改出来,只能先放放了

//
// Created by TIGA_HUANG on 2020/10/6.
//#include 
#include 
#include 
#include using namespace std;struct node {string name, introduction;double D;bool operator<(node &x) const {return x.D * x.introduction.length() < D * introduction.length();}
};vector<node> v;int main() {int N;cin >> N;v.resize(N + 5);for (int i = 0; i < N; ++i) {cin >> v[i].name >> v[i].D >> v[i].introduction;}sort(v.begin(), v.end());double infection = 0;for (int i = 0; i < N; ++i) {if (i == 0) {infection = v[i].D * v[i].introduction.length();cout << fixed << setprecision(0) << infection << '\n';cout << v[i].name << ":hao!hen you jing shen!\n";} else {if (v[i].D * v[i].introduction.length() == infection) {cout << v[i].name << ":hao!hen you jing shen!\n" ;} else {break;}}}return 0;
}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部