描述
给出一个数字n,代表单的数量,接下来n个数,代表每单产生的收益m(-1000<=m<=1000)。请给出最优接单方法(每单耗时相同),使得在任一时刻收益最大收益最大且最后接单数量最多。
输入
单组输入,输入一个n表示单的数量,接下来n行,表示每单产生的收益。
输出
给出最优的接单方法。中间用空格分开
输入样例 1
5
-32
21
0
2
4
输出样例 1
21 4 2 0
题目要求找出一时刻收益最大收益最大且最后接单数量最多,那么我们可以对其排序然后从大到小输出即可,但遇到小于0的则停止输出。
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int n;
while(cin>>n)
{
int a[n];
for(int i=0;i<n;i++)
cin>>a[i];
sort(a,a+n);
for(int i=n-1;i>=0&&a[i]>=0;i--)
cout<<a[i]<<" ";
cout<<endl;
}
return 0;
}