比赛 |
20220418高一小测验 |
评测结果 |
AAAAAAAAAA |
题目名称 |
紧急救助(民间数据) |
最终得分 |
100 |
用户昵称 |
dew52 |
运行时间 |
0.000 s |
代码语言 |
C++ |
内存使用 |
0.00 MiB |
提交时间 |
2022-04-18 19:40:09 |
显示代码纯文本
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int MAXN = 100 + 5;
struct Node
{
string name;
string help;
int score;
int rnk;
}a[MAXN];
int n, maxn, maxn_num;
string ch;
bool cmp (Node a, Node b);
int search (int x, Node a[]);
int main()
{
freopen("noi_online2020_save.in","r",stdin);
freopen("noi_online2020_save.out","w",stdout);
scanf("%d", &n);
for (int i = 1; i <= n; ++i)
{
cin >> ch;
a[i].name = ch;
string h; cin >> h;
a[i].help = h;
a[i].rnk = i;
}
for (int i = 1; i <= n; ++i)
{
a[i].score = search(i, a);
}
sort (a + 1, a + n + 1, cmp);
for (int i = 1; i <= n; ++i)
{
maxn = max(maxn, a[i].score);
//cout << a[i].score << " " << a[i].name << endl;
if (a[i].score == maxn)
{
cout << a[i].name << " ";
}
else
{
cout << endl;
break;
}
}
printf("%d\n", maxn);
return 0;
}
int search (int x, Node a[])
{
int sum = 0;
for (int i = 0; i < a[x].help.size(); ++i)
{
//cout << a[x].help[i] << ' ' << a[x].help[i + 1] << " " << a[x].help[i + 2] << endl;
if (a[x].help[i] == 's' && a[x].help[i + 1] == 'o' && a[x].help[i + 2] == 's')
{
sum++;
}
}
return sum;
}
bool cmp (Node a, Node b)
{
if (a.score != b.score)
{
return a.score > b.score;
}
else
{
return a.rnk < b.rnk;
}
}