题目描述
小可打算在集训结束后,前往有着“中国电子第一街”美誉的深圳华强北,去低价回收一些旧手机,华强北的旧手机非常的多,假设一共有 n台,每一台旧手机都有一个对应的价格ai。这个价格有可能是负数,若是负数则代表小可买这台手机不仅不用花钱,老板还会付钱给他。小可不能一直买买买,因为他只有一个行李箱,这个行李箱里最多只能装下m台手机,问小可这次去华强北最多能赚多少钱。
输入格式
输入共两行,
第一行为两个整数,分别代表华强北现有的旧手机的数量n和小可行李箱的最大容量m
第二行为这n台旧手机对应的价格ai
输出格式
输出仅一行,为小可此行的最多能赚多少钱
输入数据 1
5 2
-6 5 34 -2 6
输出数据 1
8
数据范围
1≤n,m≤106
-10000 ≤ ai ≤ 10000
这!还是一道模拟题(老师真爱模拟)
话不多说,上题解
#include<bits/stdc++.h>
using namespace std;
int a[10001],n,m,sum=0;
int main(){
int n,m;
cin>>n>>m;
for(int i=1;i<=n;i++)cin>>a[i];
sort(a+1,a+1+n);
for(int i=1;i<=m;i++)if(a[i]<=0)sum+=a[i];
sum=-sum;
cout<<sum;
return 0;
}