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;
}
相关推荐
REDcker7 小时前
C++变量存储与ELF段布局详解 从const全局到rodata与nm_readelf验证实践
java·c++·面试
王老师青少年编程9 小时前
csp信奥赛C++高频考点专项训练之字符串 --【字符串排序】:合并序列
c++·字符串·csp·高频考点·信奥赛·字符串排序·合并序列
handler0110 小时前
UDP协议与网络通信知识点
c语言·网络·c++·笔记·网络协议·udp
神仙别闹10 小时前
基于QT(C++)实现学生成绩管理系统
数据库·c++·qt
君义_noip11 小时前
CSP-S 2025 入门级 第一轮(初赛) 完善程序(1)
c++·算法·信息学奥赛·初赛·csp 第一轮
蜡笔小马13 小时前
07.C++设计模式-组合模式
c++·设计模式·组合模式
liulilittle13 小时前
TCP UCP v1.0:BBR 的非破坏性约束层
网络·c++·网络协议·tcp/ip·算法·c·通信
每天回答3个问题13 小时前
leetcodeHot100 | 104.二叉树的最大深度
c++·面试·
坚果派·白晓明13 小时前
【鸿蒙PC三方库移植适配框架解读系列】第五篇:完整流程图与角色职责
c语言·c++·华为·harmonyos·鸿蒙
xiao_li_ya14 小时前
C++学习日记1(`*`的理解、const关键词)
开发语言·c++