# Count the number of rectangles such that ratio of sides lies in the range [a,b]

• Last Updated : 26 May, 2021

Given the length and breadth of N rectangles and a range i.e. [a, b], the task is to count the number of rectangles whose sides(larger/smaller) ratio is in the range [a, b].
Examples:

Input: {{165, 100}, {180, 100}, {100, 170}}, a = 1.6, b = 1.7
Output:
165/100 = 1.65
170/100 = 1.7
Input: {{10, 12}, {26, 19}}, a = 0.8, b = 1.2
Output: 1

Attention reader! All those who say programming isn't for kids, just haven't met the right mentors yet. Join the  Demo Class for First Step to Coding Coursespecifically designed for students of class 8 to 12.

The students will get to learn more about the world of programming in these free classes which will definitely help them in making a wise career choice in the future.

Approach: Iterate in the array of pairs, and increase the counter when max(a[i].first, a[i].second)/min(a[i].first, a[i].second) lies in the range a and b.
Below is the implementation of the above approach:

## C++

 `// C++ program to print the length of the shortest``// subarray with all elements greater than X``#include ``using` `namespace` `std;` `// Function to count the number of ratios``int` `countRatios(pair<``int``, ``int``> arr[], ``int` `n,``                           ``double` `a, ``double` `b)``{``    ``int` `count = 0;` `    ``// count the number of ratios``    ``// by iterating``    ``for` `(``int` `i = 0; i < n; i++) {` `        ``double` `large = max(arr[i].first, arr[i].second);``        ``double` `small = min(arr[i].first, arr[i].second);` `        ``// find ratio``        ``double` `ratio = large / small;` `        ``// check if lies in range``        ``if` `(ratio >= a && ratio <= b)``            ``count += 1;``    ``}` `    ``return` `count;``}` `// Driver Code``int` `main()``{``    ``pair<``int``, ``int``> arr[] = { { 165, 100 },``                             ``{ 180, 100 },``                             ``{ 100, 170 } };``    ``double` `a = 1.6, b = 1.7;``    ``int` `n = 3;` `    ``cout << countRatios(arr, n, a, b);` `    ``return` `0;``}`

## Java

 `// Java program to print the length of the shortest``// subarray with all elements greater than X``class` `GFG``{``static` `int` `n = ``3``;``static` `class` `pair``{``    ``int` `first, second;``    ``public` `pair(``int` `first, ``int` `second)``    ``{``        ``this``.first = first;``        ``this``.second = second;``    ``}``}` `// Function to count the number of ratios``static` `int` `countRatios(pair []arr, ``int` `n,``                       ``double` `a, ``double` `b)``{``    ``int` `count = ``0``;` `    ``// count the number of ratios``    ``// by iterating``    ``for` `(``int` `i = ``0``; i < n; i++)``    ``{``        ``double` `large = Math.max(arr[i].first,``                                ``arr[i].second);``        ``double` `small = Math.min(arr[i].first,``                                ``arr[i].second);` `        ``// find ratio``        ``double` `ratio = large / small;` `        ``// check if lies in range``        ``if` `(ratio >= a && ratio <= b)``            ``count += ``1``;``    ``}``    ``return` `count;``}` `// Driver Code``public` `static` `void` `main(String[] args)``{``    ``pair []arr = {``new` `pair(``165``, ``100``),``                  ``new` `pair(``180``, ``100``),``                  ``new` `pair(``100``, ``170``)};``    ``double` `a = ``1.6``, b = ``1.7``;``    ``int` `n = ``3``;` `    ``System.out.println(countRatios(arr, n, a, b));``}``}` `// This code is contributed by PrinciRaj1992`

## Python3

 `# Python3 program to print the``# length of the shortest subarray``# with all elements greater than X` `# Function to count the number of``# ratios``def` `countRatios(arr, n, a, b):` `    ``count ``=` `0` `    ``# count the number of ratios``    ``# by iterating``    ``for` `i ``in` `range``(n):` `        ``large ``=` `max``(arr[i][``0``],``                    ``arr[i][``1``])``        ``small ``=` `min``(arr[i][``0``],``                    ``arr[i][``1``])` `        ``# find ratio``        ``ratio ``=` `large ``/` `small` `        ``# check if lies in range``        ``if` `(ratio >``=` `a ``and``            ``ratio <``=` `b):``            ``count ``+``=` `1` `    ``return` `count` `# Driver Code``if` `__name__ ``=``=` `"__main__"``:` `    ``arr ``=` `[[``165``, ``100``],``           ``[``180``, ``100``],``           ``[``100``, ``170``]]``    ``a ``=` `1.6``    ``b ``=` `1.7``    ``n ``=` `3``    ``print``(countRatios(arr, n, a, b))` `# This code is contributed by Chitranayal`

## C#

 `// C# program to print the length of the shortest``// subarray with all elements greater than X``using` `System;``    ` `class` `GFG``{``static` `int` `n = 3;``class` `pair``{``    ``public` `int` `first, second;``    ``public` `pair(``int` `first, ``int` `second)``    ``{``        ``this``.first = first;``        ``this``.second = second;``    ``}``}` `// Function to count the number of ratios``static` `int` `countRatios(pair []arr, ``int` `n,``                       ``double` `a, ``double` `b)``{``    ``int` `count = 0;` `    ``// count the number of ratios``    ``// by iterating``    ``for` `(``int` `i = 0; i < n; i++)``    ``{``        ``double` `large = Math.Max(arr[i].first,``                                ``arr[i].second);``        ``double` `small = Math.Min(arr[i].first,``                                ``arr[i].second);` `        ``// find ratio``        ``double` `ratio = large / small;` `        ``// check if lies in range``        ``if` `(ratio >= a && ratio <= b)``            ``count += 1;``    ``}``    ``return` `count;``}` `// Driver Code``public` `static` `void` `Main(String[] args)``{``    ``pair []arr = {``new` `pair(165, 100),``                  ``new` `pair(180, 100),``                  ``new` `pair(100, 170)};``    ``double` `a = 1.6, b = 1.7;``    ``int` `n = 3;` `    ``Console.WriteLine(countRatios(arr, n, a, b));``}``}` `// This code is contributed by 29AjayKumar`

## Javascript

 ``
Output:
`2`

My Personal Notes arrow_drop_up