第1题 USAICO 查看测评数据信息(我要的是c++语言)
c++
第1题 USAICO
FJ的农场举行了异一场USA奶牛奥林匹克竞赛.N(1 <= N <= 100,000; N 是一个奇数)只奶牛都已经获得了一个整数分数S(0 <= S <= 10,000).
FJ必须统计这些分数以便指导他们.帮他吧~~给出一个列表,计算最小值、最大值、中间数、众数。中间值是一个值M,至少一半的数<=M,至少一半的数>=M。众数是指出现次数最多的一个数。FJ知道分数里面只有一个众数。
输入格式
第1行:一个整数N。
第2..N+1行:每一行有一个整数,是一只奶牛的分数
输出格式
四个用空格隔开的整数:最小值、最大值、中间数、众数
输入/输出例子1
输入:
9
1
3
15
3
5
6
7
8
3
输出:
1 15 5 3
样例解释
9只奶牛的分数,在1到15之间,最小值是 1;最大值是 15;中间值是 5;众数是 3,出现了3次。
**_
第1题 USAICO 查看测评数据信息
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
关注【以下回答由 GPT 生成】
#include <iostream> #include <vector> #include <algorithm> #include <unordered_map> using namespace std; int main() { int N; cin >> N; vector<int> scores; for (int i = 0; i < N; i++) { int score; cin >> score; scores.push_back(score); } // 计算最小值 int min_score = *min_element(scores.begin(), scores.end()); // 计算最大值 int max_score = *max_element(scores.begin(), scores.end()); // 计算中间数 sort(scores.begin(), scores.end()); int mid_score = scores[N/2]; // 计算众数 unordered_map<int, int> count; for (int score : scores) { count[score]++; } int mode = -1; // 众数 int mode_count = 0; // 众数出现次数 for (auto pair : count) { if (pair.second > mode_count) { mode_count = pair.second; mode = pair.first; } } cout << min_score << " " << max_score << " " << mid_score << " " << mode << endl; return 0; }【相关推荐】
- 你可以看下这个问题的回答https://ask.csdn.net/questions/7494444
- 除此之外, 这篇博客: 玩转oj之1002题(分糖果)中的 某幼儿园里,有5个小朋友围成一圈,他们的编号为1、2、3、4、5.他们身上都有若干个糖果,现在他们做一个分糖果游戏。从1号小朋友开始,将自己的糖果均分三份(如果分不均匀的糖果,则立即吃掉),自己留一份,其余两份分给他相邻的两个小朋友。接着2号、3号、4号、5号小朋友同样这么做。问一轮后,每个小朋友手上分别有多少糖果? 部分也许能够解决你的问题。
如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^本回答被题主选为最佳回答 , 对您是否有帮助呢?解决评论 打赏 举报无用 2