OJ练习之疯狂的自我检索者(简单)

疯狂的自我检索者

题号: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;
}
相关推荐
郝学胜_神的一滴9 小时前
CMake 037:宏传递流转机制与C++编译特性跨平台适配指南
c++·cmake
apocelipes2 天前
常用编程语言和库的正则表达式性能对比
c语言·c++·python·性能优化·golang·开发工具和环境
郝学胜_神的一滴3 天前
CMake 034:生成器表达式:解耦构建时序、精简分支逻辑的终极利器
c++·cmake
见过夏天4 天前
C++ 基础入门完全指南
c++
用户805533698035 天前
不止三件套:QObject 属性系统全关键字与运行时反射!
c++·qt
BadBadBad__AK6 天前
线段树维护区间 k 次方和
c++·数学·算法·stl
卷无止境6 天前
Eigen 库如何借助 OpenMP 加速计算
c++·后端
卷无止境6 天前
OpenMPI、MPICH 与 OpenMP:关系、核心概念与架构全解
c++·后端
郝学胜_神的一滴7 天前
CMake 30:循环语法全解|foreach_while双循环精讲、迭代技巧与实战避坑指南
c++·cmake
卷无止境9 天前
C++ 的Eigen 库全解析
c++