http://codeforces.com/contest/34

B. Sale
time limit per test
2 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output

Once Bob got to a sale of old TV sets. There were n TV sets at that sale. TV set with index i costs ai bellars. Some TV sets have a negative price — their owners are ready to pay Bob if he buys their useless apparatus. Bob can «buy» any TV sets he wants. Though he's very strong, Bob can carry at most m TV sets, and he has no desire to go to the sale for the second time. Please, help Bob find out the maximum sum of money that he can earn.

Input

The first line contains two space-separated integers n and m (1 ≤ m ≤ n ≤ 100) — amount of TV sets at the sale, and amount of TV sets that Bob can carry. The following line contains n space-separated integers ai( - 1000 ≤ ai ≤ 1000) — prices of the TV sets.

Output

Output the only number — the maximum sum of money that Bob can earn, given that he can carry at most mTV sets.

Sample test(s)
input
5 3
-6 0 35 -2 4
output
8
input
4 2
7 0 0 -7
output
7

这里我们用了简单的冒泡排序,当我们计算我们能赚多少钱是一定要注意把大于零的数去掉,因为加上大于零的数我们是会赔钱的,所以一定要考虑全面

#include <stdio.h>


int main()

{

    int  m, arr[110],k, i, s=0, j, n;

    scanf("%d", &n);

    scanf("%d", &m);

        for(i=1; i<=n; i++)

        scanf("%d", &arr[i]);

        

        for(j = 2; j <= n; j++)

            for(i = 2; i <= n; i++)

        {

            if(arr[i]<arr[i-1])

            {

                k = arr[i-1];

                arr[i-1] = arr[i];

                arr[i] = k;

            }

        }

    for(i=1;i<=n;i++)

    printf("%d", arr[i]);

        for(i=1;i<=m;i++)

        {

            if(arr[i] < 0)

            s += arr[i];

        }

        printf("%d\n", -s);

    return 0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值