L1-056 猜數字 (20分) C++
題目描述
一群人坐在一起,每人猜一個 100 以內的數,誰的數字最接近大家平均數的一半就贏。本題就要求你找出其中的贏家。
輸入格式
輸入在第一行給出一個正整數N(≤10^4)。隨後 N 行,每行給出一個玩家的名字(由不超過8個英文字母組成的字串)和其猜的正整數(≤ 100)。
輸出格式
在一行中順序輸出:大家平均數的一半(只輸出整數部分)、贏家的名字,其間以空格分隔。題目保證贏家是唯一的。
輸入樣例
7
Bob 35
Amy 28
James 98
Alice 11
Jack 45
Smith 33
Chris 62
輸出樣例
22 Amy
分析
由於答案唯一,所以答案的姓名與分數是唯一對應的關係,才用雜湊表進行儲存。
C++ 程式碼
#include<bits/stdc++.h>
using namespace std;
int n,sl,sh;
double sum;
unordered_map<int,string> score;
bool st[101];
int main()
{
cin>>n;
string name;
int sc;
for(int i=0;i<n;i++)
{
cin>>name>>sc;
score[sc]=name;
sum+=sc;
st[sc]=true; //此數已經出現
}
sum/=(n*2);
sum=round(sum); //四捨五入
for(int i=sum;i>-1;i--) //查詢此時距離sum最近的數
{
if(st[i])
{
sl=i;
break;
}
}
for(int i=sum+1;i<101;i++)
{
if(st[i])
{
sh=i;
break;
}
}
if(int(sum)-sl<sh-int(sum)) cout<<sum<<" "<<score[sl]<<endl;
else cout<<sum<<" "<<score[sh]<<endl;
return 0;
}
相關文章
- L1-056 猜數字 分數 20
- 7-24 猜數字遊戲 (15分)遊戲
- 猜數字遊戲遊戲
- Shell猜數字遊戲遊戲
- 猜數字小遊戲遊戲
- 【Java】——猜數字遊戲Java遊戲
- [TJOI2009] 猜數字
- 猜數字的介面版
- 演算法 猜數字演算法
- 由一個C++版本猜數字遊戲引起的效率問題C++遊戲
- 使用者猜數字遊戲遊戲
- leedcode-猜數字大小
- 以太坊智慧合約-猜數字
- C#小遊戲-------猜數字 (轉)C#遊戲
- linux實現猜數字小遊戲Linux遊戲
- 簡單的C# 猜數字遊戲C#遊戲
- C#之簡易猜數字遊戲C#遊戲
- 第三章 猜數字遊戲遊戲
- 猜字遊戲遊戲
- LeetCode-374-猜數字大小LeetCode
- 一個猜數字輸贏的小遊戲遊戲
- 一個拖拉且錯誤的猜數字程式
- Rust學習之旅1——寫個猜數字遊戲Rust遊戲
- 1013 數素數 (20分)/c++實現C++
- 【python小練習】簡單的猜數字遊戲Python遊戲
- 透過編寫“猜數字”遊戲來學習 Awk遊戲
- LeetCode 299 猜數字遊戲 Java實現LeetCode遊戲Java
- 猜數記---BCWIPE註冊半破解 (25千字)
- L1-093 猜帽子游戲 分數 15
- 1019 數字黑洞 (20 分)javaJava
- LeetCode每日一題: 猜數字大小(No.374)LeetCode每日一題
- 【Java基礎教程】用Java實現猜數字小遊戲Java遊戲
- C++中的魔鬼數字C++
- C++/C:數字轉成字串, 字串轉成數字C++字串
- Shell指令碼——Linux系統中的時間猜數字指令碼Linux
- C++之數字計數演算法C++演算法
- CSS數字分頁效果CSS
- 開心檔之C++ 數字C++