#include<iostream>
using namespace std;
int main()
{
int n, t[100], i, sum, t1, t2;
cout << "请输入需要过河的人数: ";
cin >> n;
cout << "请按升序排列的顺序依次输入每个人过河的时间: ";
for (i = 0; i < n; i++)
cin >> t[i];
if (n == 1) //一人过河
sum = t[0];
else // 多人过河
{
sum = 0;
while (1)
{
if (n == 2) //剩两人
{
sum += t[1];
break;
}
else if (n == 3)//剩三人
{
sum += t[0] + t[1] + t[2];
break;
}
else
{
t1 = t[0] + t[1] + t[1] + t[n - 1];
t2 = t[0] + t[0] + t[n - 1] + t[n - 2];
sum += (t1 > t2 ? t2 : t1);
n -= 2;
}
}
}
cout << "最少需要的时间为: " << sum << endl;
return 0;
}
过河问题
最新推荐文章于 2021-03-19 07:11:06 发布