疯狂的自我检索者
题号:NC205826
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
Special Judge, 64bit IO Format: %lld
题目描述
牛妹作为偶像乐队的主唱,对自己的知名度很关心。她平时最爱做的事就是去搜索引擎搜自己的名字,看看别人对自己的评价怎么样。
这天,她打开了一个"偶像评分系统",上面有很多人给她打分。
"偶像评分系统"的分数有1分、2分、3分、4分和5分。给牛妹评分的人有 n 个。但其中有 m 个人把分数隐藏了,牛妹并不能看到这些人给她打的分数。
牛妹想知道,已知这些信息的情况下,自己得到的平均分数的最大可能和最小可能分别是多少?
输入描述:
第一行输入两个正整数 n 和 m (1≤m≤n≤200000)
第二行输入 n−m 个正整数 ai,代表没有隐藏的分数。 (1≤ai≤5)
若 m 和 n 相等,则第二行为空。
输出描述:
两个数,用空格隔开,分别代表最小可能平均分数和最大可能平均分数。如果你的输出和正确答案之间误差不超过10^(−5),则认为你的答案正确。
示例1
输入
5 1
1 2 3 4
输出
2.20000 3.00000
题解:
cpp
#include <iostream>
using namespace std;
int main()
{
// 最小平均数 (已知之和+未知全按1算)/n
// 最大平均数 (已知之和+未知全按5算)/n
int n,m;
cin >> n >> m;
double sum = 0; // 输出是分数,定义成double类型
int a = 0;
for(int i=0 ;i<n-m ;i++)
{
cin >> a;
sum = sum + a;
}
cout << (sum + m * 1) / n<< " " << ( sum + m * 5) / n << endl;
return 0;
}