From 04c2bd2ff2b768c3fbc17879155522a8adb28f18 Mon Sep 17 00:00:00 2001 From: Zengtudor Date: Sun, 8 Dec 2024 12:12:53 +0800 Subject: [PATCH] update --- .gitignore | 2 +- src/12/c6/Restaurant_Reviews.cpp | 41 ++++++++++++++++++++++++++++++++ src/12/c6/Restaurant_Reviews.md | 0 src/12/c6/homework.txt | 2 ++ src/12/c6/r.in | 2 ++ src/12/c6/r.out | 1 + 6 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 src/12/c6/Restaurant_Reviews.cpp create mode 100644 src/12/c6/Restaurant_Reviews.md create mode 100644 src/12/c6/homework.txt create mode 100644 src/12/c6/r.in create mode 100644 src/12/c6/r.out diff --git a/.gitignore b/.gitignore index 491a601..9837dd4 100755 --- a/.gitignore +++ b/.gitignore @@ -34,6 +34,6 @@ # Executables *.exe -*.out +# *.out *.app diff --git a/src/12/c6/Restaurant_Reviews.cpp b/src/12/c6/Restaurant_Reviews.cpp new file mode 100644 index 0000000..20b7e53 --- /dev/null +++ b/src/12/c6/Restaurant_Reviews.cpp @@ -0,0 +1,41 @@ +/* + +有一家餐厅,并且有1~5档整数评分,给出每档评分人数,求出到指定评分需要刷多少好评。好评指(5或者4星) + +好评指的是4星或5星的评分。为了最小化需要添加的评分数量,我们应该优先添加5星评分,因为它对提高平均评分的贡献最大。 + +解决思路 +计算当前总分和总人数: +总分 S = C1*1 + C2*2 + C3*3 + C4*4 + C5*5 +总人数 T = C1 + C2 + C3 + C4 + C5 +判断当前平均评分是否已经达到目标K: +如果 S / T >= K,则不需要添加任何评分,输出 0。 +处理特殊情况当目标K为5: +只有当所有评分都是5星时,才能达到平均评分5。 +如果当前总分 S == 5*T,则输出 0。 +否则,不可能达到平均评分5,输出 -1。 + +(S+5N)/(T+N)>=K +N>=(K*T-S)/(5-K) + +*/ + +#include +#include +#include + +using ll = int64_t; + +int main(){ + ll c[6]; + double s=0.0; + ll t=0; + for(ll i=1;i<=5;i++){ + std::cin>>c[i]; + t+=c[i]; + s+=double(i)*double(c[i]); + } + double k; + std::cin>>k; + std::cout<