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;
}
相关推荐
kloc22 分钟前
聊天室项目入口网关子服务的实现
linux·c++
csdn_aspnet4 小时前
C++ 3个有序点的方向(Orientation of 3 ordered points)
c++·算法
小七在进步4 小时前
string的使用(2)
c++
青少儿编程课堂5 小时前
蓝桥杯·全国青少年信息素养大赛·电子学会Python/C++考级:折半搜索优化子集枚举(Meet in the Middle)解析
c++·python·算法·bfs·信息学竞赛
wo_jack7 小时前
C++ 入门笔记(十七):list 入门 —— 为什么 list 不能 sort?
数据结构·c++·面试·stl·list
青少儿编程课堂8 小时前
蓝桥杯青少组图形化 + 全国青少年信息素养大赛 + 电子学会Scratch考级:校园连连看解析
c++·python·算法·bfs·信息学竞赛
草莓熊Lotso9 小时前
【C++ 基于微服务的即时通讯系统】文件存储子服务实战:UUID生成、文件IO封装与全接口单元测试
开发语言·网络·数据库·c++·微服务·架构·单元测试
David猪大卫1 天前
【C++修炼】map 和 set 的使用
c语言·开发语言·数据结构·c++·经验分享·笔记·学习
HPtiger1 天前
C++ 入门笔记:从 C 到 C++ 的核心过渡(命名空间、输入输出、缺省参数、重载、引用、内联)
c语言·c++·学习
努力努力再努力wz1 天前
【Lua 进阶系列】从 C++ 对象到 Lua 变量:一文理解 userdata、Lua 栈与元表绑定机制
c++·junit·lua