Try   HackMD

f818: 物競天擇

題目:

「物競天擇、適者生存」是大自然的殘酷競爭法則,以獅子為例,每一頭獅子都想要從獅群中脫穎而出,成為獅王。小獅子的母親在每一隻小獅子出生後,會選擇性地培養那些強壯的小獅子,母獅會把自己的精力和食物都給予這些天生就有優勢的小獅子身上,因為牠們更有機會成為未來的獅王。而天生比較弱小的獅子,不僅受到母親的忽視,同伴的排擠,還有可能直接被母親拋棄。為了保護弱小的獅子,人們想要在小獅子生下後預先把會被獅子媽媽遺棄的小獅子帶回城市由人類保育。他們觀察的方式是以每隻小獅子的體重(公斤)乘以身高(公分)來比較,將數值最小的那位小獅子帶回保護。
請你幫忙寫一個程式完成此項保護小獅子的行動。

測資說明:

輸入第一行為一個整數 N (2 ≤N ≤2000) 代表小獅子的總數,第二行共有共
有 N 個整數表示每隻獅子的身高 Hi (1 ≤ Hi ≤ 1000, 1 ≤ i ≤ N),第三行有N個整數
表示每隻獅子的體重 Wi (1 ≤ Wi ≤ 1000, 1 ≤ i ≤ N)。

輸出一行為要帶走的小獅子的身高與體重,兩數中間以空白格隔開。測資
保證只會有一隻小獅子有最小的體重-身高乘積。

C++ Code:

#include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { int n = 0, tmp = 0; vector<int> v_H, v_W, v_data; cin >> n; for (int i = 0; i < n; i++) { cin >> tmp; v_H.push_back(tmp); } for (int i = 0; i < n; i++) { cin >> tmp; v_W.push_back(tmp); v_data.push_back(v_H[i] * v_W[i]); } int minPos = min_element(v_data.begin(), v_data.end()) - v_data.begin(); cout << v_H[minPos] << " " << v_W[minPos]; return 0; }

tags: APCS C++