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;
}
相关推荐
渡我白衣2 小时前
并查集:基础认识与模拟实现
android·java·javascript·数据结构·c++·算法·并查集
如意猴2 小时前
【C++】001--C++入门(1)
开发语言·c++
hetao17338372 小时前
2026-09-01~09-04 hetao1733837 的刷题记录
c++·算法
HugoStudio_SWAN5 小时前
洛谷 P1420 / P1179 / B4262 最长连号、数字统计与词频统计——统计的三种面孔
c++·学习·程序人生·算法
raindayinrain6 小时前
c++并发
c++
j7~6 小时前
【C++】智能指针的使用及其原理--详解
c++·c++11·内存泄漏·智能指针·raii·boost智能指针
Persistent的粽子!7 小时前
C++:类与对象(一)
开发语言·c++·经验分享·笔记
库玛西8 小时前
深入浅出Linux select网络模型:从底层位图原理到C++面向对象高级封装
linux·服务器·网络·c++·ubuntu
2402_882893868 小时前
深入浅出 unordered_map 与 unordered_set——从使用到底层差异
c++·哈希·unordered_map·unordered_set
今天要早睡_8 小时前
C++ 核心语法速过:命名空间、引用、函数重载与 nullptr 深度解析
android·java·c++