2024 年 7月 - 6. 游乐园 题目ID:9479必做题100分 最新提交: Runtime Error 5 分 历史最高: Runtime Error 5 分 时间限制: 1000ms 空间限制: 524288kB 题目描述 鱼大大和羊大大准备去方特游乐园游玩,在此之前他们做足了游玩攻略,游乐园中有10个游乐设施供有个玩乐。羊大大从多个APP上找到了该游乐园的各个项目共n条实时评价,并和鱼大大一起统计。 羊…
#include <bits/stdc++.h>
using namespace std;
struct Box {
string name;
int cnt = 0;
} a[10];
string s[10]{“bumpercar”, “bungeejumping”, “carousel”, “ferriswheel”, “hauntedhouse”, “jumpingmachine”, “pendulum”, “pirateship”, “rollercoaster”, “shootinggame”};
bool cmp(const Box &u, const Box &v) {
if (u.cnt != v.cnt) return u.cnt > v.cnt;
else return u.name < v.name;
}
int main() {
int n;
cin >> n;
// 游乐设施和评分初始化
for (int i = 0; i < 10; ++i) {
a[i].name = s[i];
a[i].cnt = 0;
}
// 依序读入游乐设施的信息
for (int i = 0; i < n; ++i) {
string u, v;
cin >> u >> v;
// 读入一个游乐设施的信息,就在相应的结构体变量中累计评价得分
for (int k = 0; k < 10; ++k) {
if (a[k].name == u) {
a[k].cnt += v == “good” ? 1 : -1;
break;
}
}
}
// 按照评分高的从大往小排序,如果评分相同,按照游乐设施名字的字典序从小往大排序
sort(a, a + 10, cmp);
// 按照评分高低游玩,评分为负不游玩
for (int i = 0; i < 10; ++i) {
if (a[i].cnt < 0) break;
if (i == 0) cout << a[i].name;
else cout << “>>>” << a[i].name;
}
}
别发AC代码
题面给全