Given the range of cost from lowCost to upCost and range of quantity from lowQuant to upQuant, find if it is possible to get a given ration ratio r where , and lowCost <= cost <= upCost and lowQuant <= quantity <= upQuant.
Examples :
Input : lowCost = 1, upCost = 10, lowQuant = 2, upQuant = 8 r = 3 Output : Yes Explanation: cost / quantity = 6 / 2 = 3 where cost is in [1, 10] and quantity is in [2, 8] Input : lowCost = 14, upCost = 30, lowQuant = 5, upQuant = 12 r = 9 Output : No
Approach: From the given formula, following equation can be easily deduced: .
From this equation, logic can be easily deduced. Check the product of every value of quantity with r and if any value of the product lies between lowCost and upCost, then answer is Yes otherwise it is No.
Below is the implementation of above approach:
C++
// C++ program to find if it is // possible to get the ratio r #include <bits/stdc++.h> using namespace std; // Returns true if it is // possible to get ratio r // from given cost and // quantity ranges. bool isRatioPossible( int lowCost, int upCost, int lowQuant, int upQuant, int r) { for ( int i = lowQuant; i <= upQuant; i++) { // Calculating cost corresponding // to value of i int ans = i * r; if (lowCost <= ans && ans <= upCost) return true ; } return false ; } // Driver Code int main() { int lowCost = 14, upCost = 30, lowQuant = 5, upQuant = 12, r = 9; if (isRatioPossible(lowCost, upCost, lowQuant, upQuant, r)) cout << "Yes" ; else cout << "No" ; return 0; } |
Java
// Java program to find if it is // possible to get the ratio r import java.io.*; class Ratio { // Returns true if it is // possible to get ratio r // from given cost and // quantity ranges. static boolean isRatioPossible( int lowCost, int upCost, int lowQuant, int upQuant, int r) { for ( int i = lowQuant; i <= upQuant; i++) { // Calculating cost corresponding // to value of i int ans = i * r; if (lowCost <= ans && ans <= upCost) return true ; } return false ; } // Driver Code public static void main(String args[]) { int lowCost = 14 , upCost = 30 , lowQuant = 5 , upQuant = 12 , r = 9 ; if (isRatioPossible(lowCost, upCost, lowQuant, upQuant, r)) System.out.println( "Yes" ); else System.out.println( "No" ); } } |
Python3
# Python 3 program to find if it # is possible to get the ratio r # Returns true if it is # possible to get ratio r # from given cost and # quantity ranges. def isRatioPossible(lowCost, upCost, lowQuant, upQuant, r) : for i in range (lowQuant, upQuant + 1 ) : # Calculating cost corresponding # to value of i ans = i * r if (lowCost < = ans and ans < = upCost) : return True return False # Driver Code lowCost = 14 ; upCost = 30 lowQuant = 5 ; upQuant = 12 ; r = 9 if (isRatioPossible(lowCost, upCost, lowQuant,upQuant, r)) : print ( "Yes" ) else : print ( "No" ) # This code is contributed # by Nikita Tiwari. |
C#
// C# program to find if it is // possible to get the ratio r using System; class Ratio { // Returns true if it is // possible to get ratio r // from given cost and // quantity ranges. static bool isRatioPossible( int lowCost, int upCost, int lowQuant, int upQuant, int r) { for ( int i = lowQuant; i <= upQuant; i++) { // Calculating cost corresponding // to value of i int ans = i * r; if (lowCost <= ans && ans <= upCost) return true ; } return false ; } // Driver Code public static void Main() { int lowCost = 14, upCost = 30, lowQuant = 5, upQuant = 12, r = 9; if (isRatioPossible(lowCost, upCost, lowQuant, upQuant, r)) Console.WriteLine( "Yes" ); else Console.WriteLine( "No" ); } } // This code is contributed by vt_m. |
PHP
<?php //PHP program to find if it is // possible to get the ratio r // Returns true if it is // possible to get ratio r // from given cost and // quantity ranges. function isRatioPossible( $lowCost , $upCost , $lowQuant , $upQuant , $r ) { for ( $i = $lowQuant ; $i <= $upQuant ; $i ++) { // Calculating cost corresponding // to value of i $ans = $i * $r ; if ( $lowCost <= $ans && $ans <= $upCost ) return true; } return false; } // Driver Code $lowCost = 14; $upCost = 30; $lowQuant = 5; $upQuant = 12; $r = 9; if (isRatioPossible( $lowCost , $upCost , $lowQuant , $upQuant , $r )) echo "Yes" ; else echo "No" ; # This code is contributed by ajit ?> |
Javascript
<script> // JavaScript program to find if it is // possible to get the ratio r // Returns true if it is // possible to get ratio r // from given cost and // quantity ranges. function isRatioPossible(lowCost, upCost, lowQuant, upQuant, r) { for (let i = lowQuant; i <= upQuant; i++) { // Calculating cost corresponding // to value of i let ans = i * r; if (lowCost <= ans && ans <= upCost) return true ; } return false ; } // Driver code let lowCost = 14, upCost = 30, lowQuant = 5, upQuant = 12, r = 9; if (isRatioPossible(lowCost, upCost, lowQuant, upQuant, r)) document.write( "Yes" ); else document.write( "No" ); </script> |
Output :
No
Time Complexity: O(|uq-lq|), where uq is upQuant and lq is lowQuant.
Auxiliary Space: O(1)
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!