MEGA SALE
PROBLEM :
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
Sample Input:
1
5 3
-6 0 35 -2 4
Sample Output:
8
Explanation:
LALU takes the laptops with -6 and -2 and thus earns 8 rupees.
--------------------------------------------------------------------------------
SIMPLE c++ IMPLEMENTATION :
--------------------------------------------------------------------------------
#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 ;
}
---------------------------------------------------------------------------------
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
Sample Input:
1
5 3
-6 0 35 -2 4
Sample Output:
8
Explanation:
LALU takes the laptops with -6 and -2 and thus earns 8 rupees.
--------------------------------------------------------------------------------
SIMPLE c++ IMPLEMENTATION :
--------------------------------------------------------------------------------
#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
Post a Comment