Sorting SORT10

QUESTION DESCRIPTION 

LALU wanted to purchase a laptop so he went to a nearby sale.There were n Laptops at a sale.

Laptop with index i costs ai rupees.

Some Laptops have a negative price — their owners are ready to pay LALU if he buys their useless Laptop.

LALU can buy any Laptop he wants. Though he's very strong, he can carry at most m Laptops, and he has no desire to go to the sale for the second time.

Please, help LALU find out the maximum sum of money that he can earn.

Input:

First line of the input contains T denoting the number of test cases.Each test case has 2 lines :

First line has two spaced integers n m.

second line has n integers [a0...ai...an-1].

Output:

The maximum sum of money that LALU can earn, given that he can carry at most m Laptops.


Constraints:

1≤T≤10

1≤n,m≤100

-1000≤ai≤1000



TEST CASE 1 

INPUT
1
5 3
-6 0 35 -2 4
OUTPUT
8

TEST CASE 2 

INPUT
2
6 2
-4 5 0 -1 2 1
7 4
6 1 0 -2 2 -4 3
OUTPUT
5
6



#include<iostream>
using namespace std;
int MEGA_SALE(int [],int ,int ) ;
void bubble_sort(int [],int ) ;
int minof(int ,int ) ;
int main()
 {
 int t,arr[100],no,i,k ;
 cin>>t ;
 while(t--)
 {
     cin>>no ;
     cin>>k ;
     for(i=0;i<no;i++)
         cin>>arr[i] ;
        
     no=MEGA_SALE(arr,no,k) ;
     cout<<abs(no)<<endl ;
 }
 return 0;
}

int MEGA_SALE(int arr[],int no,int k)
{
    int i ;
    bubble_sort(arr,no) ;
   
    int sum=0 ;
    for(i=0;i<k;i++)
        sum=minof(sum,sum+arr[i]) ;
       
    return sum ;
}

void bubble_sort(int arr[],int no)
{
    int i,j,temp ;
    for(i=0;i<no-1;i++)
    {
        for(j=0;j<no-i-1;j++)
        {
            if(arr[j]>arr[j+1])
            {
                temp=arr[j] ;
                arr[j]=arr[j+1] ;
                arr[j+1]=temp ;
            }
        }
    }
}

int minof(int a,int b)
{
    return a>b?b:a ;
}       

Comments

Popular Posts