游乐园!!!!救救我呀!!!

鱼大大和羊大大准备去方特游乐园游玩,在此之前他们做足了游玩攻略,游乐园中有10个游乐设施供有个玩乐。羊大大从多个APP上找到了该游乐园的各个项目共n条实时评价,并和鱼大大一起统计。

羊大大每找到一个游乐设施的好评,鱼大大就将该设施的受欢迎度度+1,羊大大每找到一个游乐设施的差评,鱼大大就将该设施的受欢迎度-1。现在鱼大大请求你写出程序,帮助安排他们的游玩顺序。他们将从最受欢迎的游乐设施开始游玩。若有多个设施的受欢迎度相同,将按字符串排序较小的优先游玩。若受欢迎度为负数则不游玩。

这 10 个游乐设施分别是:

bumpercar
bungeejumping
carousel
ferriswheel
hauntedhouse
jumpingmachine
pendulum
pirateship
rollercoaster
shootinggame

输入格式

一行n表示接来下n条评价

接下来n行 每行一个娱乐设施名字以及评价

输出格式

游玩顺序,中间使用“>>>”连接

样例

Input 1

10 bumpercar good shootinggame good pirateship bad rollercoaster good pendulum bad shootinggame good pirateship bad pirateship good pirateship bad shootinggame bad

Output 1

bumpercar>>>rollercoaster>>>shootinggame>>>bungeejumping>>>carousel>>>ferriswheel>>>hauntedhouse>>>jumpingmachine

样例解释

在这 10 个游乐设施里,有两个不受欢迎的设施"pendulum" 和 “pirateship”,所以不游玩这两个,其他的游乐设施按照受欢迎程度游玩。

数据范围

n≤30n≤30

在线等 :sob:

2 个赞

你有思路嘛

2 个赞

没有

2 个赞

救救我呀!! :sob:

救救我呀!

救救我呀!! :sob:

字符串排序

代码有吗

siliao

建议用vector,里面用pair,直接sort

#include<bits/stdc++.h>
#include
using namespace std;
struct youle{
string name;
string gb;
int popular;
};
bool cmp(youle a,youle b){
if(a.popular != b.popular) return a.popular > b.popular;
return a.name < b.name;
}
int main(){
int n,cont;
youle a[31],b[12];
string m,l;
b[1].name = “bumpercar”;
b[2].name = “bungeejumping”;
b[3].name = “carousel”;
b[4].name = “ferriswheel”;
b[5].name = “hauntedhouse”;
b[6].name = “jumpingmachine”;
b[7].name = “pendulum”;
b[8].name = “pirateship”;
b[9].name = “rollercoaster”;
b[10].name = “shootinggame”;
cin>>n;
for(int i = 1;i <= n;i++){
cin>>a[i].name>>a[i].gb;
}
for(int i = 1;i<=n;i++){
if(a[i].gb == “good”){
a[i].popular++;
}else if(a[i].gb == “bad”){
a[i].popular–;
}
}
for(int i = 1;i<=10;i++){
for(int j = 1;j <= n;j++){
if(b[i].name == a[j].name){
b[i].popular = b[i].popular+a[i].popular;
}
}
}
for(int i = 1;i <= 10;i++){
if(b[i].popular < 0){
cont++;
}
}
stable_sort(b+1,b+n+1,cmp);
for(int i = 1;i <= 10-cont;i++){
cout<<b[i].name<<“>>>”;
if(i == 10-cont) cout<<b[i].name;
}
}
小蒟蒻发言:WA代码求调

水题一道
首先打表出10个游乐园设施的先后顺序,用1代表第一个,2代表第二个……
然后开个数组,最后排序即可(要写cmp)
cmp的写法:
如果数值不同,返回a[xx]>a[yy](xx和yy是函数里两个参数)
否则返回xx<yy

把代码格式化一下哈

啊这

不能发ac代码

我WA求条

vector<pair<int,string>> v;
//输入设施名,欢迎度(欢迎度负数不装)
//直接sort
//输出v

very bigger 的water problem

2 个赞

very bigger 的water problem

已阅
虽然水题但我想用多方法