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;
}
相关推荐
huanbailu1 小时前
Qt 跨线程信号槽:connect 返回 true 但槽函数不执行的坑
开发语言·c++·qt·信号槽·跨线程·元类型
HEJOO91 小时前
C++ 虚函数表(vtable)深度解析
开发语言·c++
xailorliu2 小时前
矩阵定性-正定负定不定半正定半负定
c++·opencv·线性代数·计算机视觉·矩阵
个 人 练 习 生3 小时前
C++-----string基本使用详解
开发语言·c++·学习
朝朝辞暮i3 小时前
C++ 第 5 课:else if + 多条件判断 + && / || / !
开发语言·c++
千谦阙听3 小时前
【C++篇】:string类——常用接口、底层原理与深浅拷贝
开发语言·c++·学习·visual studio
特立独行的猫A3 小时前
c++的`std::future` 与 `std::promise` 简明教程(5分钟读完)
c++
特立独行的猫A3 小时前
C++ 异步编程:std::future 与 std::promise 详解(含 RPC 客户端实现实践)
c++·后端
All for pursuit.4 小时前
【分治-2】215.数组中的第K个最大元素
数据结构·c++·算法·leetcode
lcj25114 小时前
【C++】set和map——详细使用说明
开发语言·c++·笔记·面试