乘船问题:有n个人,第i个人重量为Wi。每艘船的载重量均为C,最多可乘坐两个人。求用最少的船装载所有人的方案。
#include<iostream>
#include<algorithm>
#define NUM 100
using namespace std;
int W[NUM];
int main()
{
int C; //船载重量
int C_sum; //船数
int n; //人数
cout<<"输入船的载重量和人数:"<<endl;
cin>>C>>n;
cout<<"输入每个人的重量"<<endl;
for(int i=0;i<n;i++)
{
cin>>W[i] ; //人重
}
sort(W,W+n);
int low=0,high=n-1;
while(low<high)
{
if(W[low]+W[high]>C)
{
high--;
C_sum++;
}
else
{
low++;
high--;
C_sum++;
}
if(low==high)
{
C_sum++;
break;
}
}
cout<<C_sum;
}