Skip to main content

Minimise Z (Coding Ninjas)


Problem statement

Given an array ‘A’. Your task is to choose any two different elements of the array say ‘X’ and ‘Y’, such that ‘Z’ is minimum possible. Where ‘Z’ = ‘X’ × ’Y’.


Return the minimum possible value of ‘Z’.


Example:
‘N’ = [5, 3, 9, 6, 3]

‘X’ can be chosen as 3(index 1) and ‘Y’ can be chosen as 3(index 4). 'Z' = 3*3 = 9.
No other combination can have a smaller value of ‘Z’.
Detailed explanation ( Input/output format, Notes, Images )
Constraints:
1 <= ‘T’ <= 10
2 <= ‘N’ <= 10^5
-10^4 <= ‘A[i]’ <= 10^4

Time Limit: 1 sec
Sample Input 1:
2
6
-6 10 -1 2 10 -1 
7
-7 5 -1 -4 -10 -8 10 
Sample Output 1:
-60
-100
Explanation of sample input 1:
For 1st Testcase :
‘X’ can be chosen as -6(index 0)  and ‘Y’ can be chosen as 10(index 1). 'Z' = -6*10 = -60.
No other combination can have a smaller value of ‘Z’.

For 2nd Testcase :
‘X’ can be chosen as -10(index 4) and ‘Y’ can be chosen as 10(index 6). 'Z' = -10*10 = -100.
No other combination can have a smaller value of ‘Z’.
Sample Input 2:
3
6
-5 -10 5 7 -8 -8 
6
-10 6 1 -6 7 5 
8
0 0 3 -8 -10 -7 4 -5 
Sample Output 2:
-70
-70
-40

Solution:
int minimiseZ (vector<int> &a){
    // Write your code here.
int mini=a[0],mini=INT_MAX;
int maxi=a[0],maxi=INT_MIN;

//Finding the minimum, second minimum, maximum and second maximum.
for(int i=1;i<a.size();i++){
if(a[i]<=mini){
smini=mini;
mini=a[i];
}
else if(a[i]<=smini)
smini=a[i];
if(a[i]>=maxi){
smaxi=mini;
mini=a[i];
}
else if (a[i]>=smaxi)
smaxi=a[i];
}
if(mini<0 && maxi>0)
return mini*maxi;
else if(mini>0)
return mini*smini;
else if(maxi<0)
return maxi*smaxi;
}

Comments

Popular posts from this blog

UPI Chalega: The Future of Digital Payments in India

  If you are looking for a fast, easy, and secure way to make payments online, you might want to try UPI. UPI stands for Unified Payments Interface, a system that allows you to transfer money instantly from your bank account to any other bank account or merchant using a mobile app. UPI is developed by the National Payments Corporation of India (NPCI), a government-backed organization that aims to promote digital payments in the country. How does UPI work? To use UPI, you need to download a UPI app from your app store. There are many UPI apps available, such as Google Pay, PhonePe, Paytm, BHIM, etc. You can choose any app that you like, as they are all interoperable, meaning you can send and receive money from any other UPI app. Once you download the app, you need to link your bank account to it by entering your bank details and verifying your mobile number. You will also create a UPI ID, which is a unique identifier that you can use to make and receive payments. A UPI ID looks like...

Tic Tac Toe Offline (2 player) - Privacy Policy

  Privacy Policy This privacy policy applies to the Tic Tac Toe Offline (2 player) app (hereby referred to as "Application") for mobile devices that was created by Ayush Agrawal (hereby referred to as "Service Provider") as a Free service. This service is intended for use "AS IS". Information Collection and Use The Application collects information when you download and use it. This information may include information such as Your device's Internet Protocol address (e.g. IP address) The pages of the Application that you visit, the time and date of your visit, the time spent on those pages The time spent on the Application The operating system you use on your mobile device The Application does not gather precise information about the location of your mobile device. The Service Provider may use the information you provided to contact you from time to time to provide you with important information, required notices and marketing promotions. For a better ex...

Recursion: Solving Problems through Recursive Functions

  Problem 1: Print Your Name n Times Let's start with a simple problem: printing your name n times using recursion. The generic way to achieve this would be to run a for loop and print your name n times. However, in this case, we want to use recursion. To solve this problem, we will define a recursive function called f(i, n) . The function takes two parameters: i , which represents the current iteration, and n , which represents the total number of times to print your name. We start by taking the input of n from the user. Then, we call the function f(0, n) , which will recursively print your name n times. Here's how the function works: Check if i is greater than n . If it is, return. Print your name. Call the function f(i + 1, n) to recursively print your name n times. By following these steps, we can easily print your name n times using recursion. Problem 2: Print Numbers from 1 to n Next, let's solve a problem where we need to print numbers from 1 to n in...