題目敘述
每筆資料第一行有一個正整數N,第二行會有N個正整數代表每一隻獅子的身高,第三行會有N個正整數代表每一隻獅子的體重。要求輸出身高*體重之後最小值的獅子的身高與體重。
範例輸入 #1
2
145 34
21 55
範例輸出 #1
34 55
範例輸入 #2
4
361 619 555 855
419 758 549 240
範例輸出 #2
361 419
範例輸入 #3
5
17 100 40 111 68
157 151 25 173 197
範例輸出 #3
40 25
解題思路
使用陣列/Vector先將身高的數值記錄下來,在收體重的資料時直接做乘法並判斷最小值。可以先把第一個獅子的體重設為最小值變數的初始值。
解題程式碼如下 (僅供參考):
#include <iostream>
#include <vector>
using namespace std;
int main() {
cin.sync_with_stdio(0);
cin.tie(0);
int N;
cin >> N;
vector<long long int>height;
for (int i = 0; i<N; i++)
{
long long int tmp;
cin >> tmp;
height.push_back(tmp);
}
long long int min, ans_h, ans_w;
for (int i = 0; i<N; i++)
{
long long int weight;
cin >> weight;
long long int calc = weight * height[i];
if (i == 0)
{
min = weight * height[i];
ans_h = height[i];
ans_w = weight;
}
if (calc < min)
{
min = calc;
ans_h = height[i];
ans_w = weight;
}
}
cout << ans_h << " " << ans_w << endl;
}
留言
張貼留言