There are n people standing on the circumference of a circle. Given the position of a person m, the task is to find the position of the person standing diametrically opposite to m on the circle.
Examples:
Input: n = 6, m = 2
Output: 5
Position 5 is opposite to 2 when there are 6 positions in totalInput: n = 8, m = 5
Output: 1
Approach: There are two cases:
- If m > n / 2 then answer will always be m – (n / 2).
- If m ? n / 2 then answer will always be m + (n / 2).
Below is the implementation of the above approach:
C++
// C++ implementation of the approach #include <bits/stdc++.h> using namespace std; // Function to return the required position int getPosition( int n, int m) { if (m > (n / 2)) return (m - (n / 2)); return (m + (n / 2)); } // Driver code int main() { int n = 8, m = 5; cout << getPosition(n, m); return 0; } |
Java
// Java implementation of the approach class Sol { // Function to return the required position static int getPosition( int n, int m) { if (m > (n / 2 )) return (m - (n / 2 )); return (m + (n / 2 )); } // Driver code public static void main(String args[]) { int n = 8 , m = 5 ; System.out.println(getPosition(n, m)); } } // This code is contributed by Arnab Kundu |
Python3
# Python3 implementation of the approach # Function to return the # required position def getPosition(n, m): if (m > (n / / 2 )) : return (m - (n / / 2 )) return (m + (n / / 2 )) # Driver code n = 8 m = 5 print (getPosition(n, m)) # This code is contributed # by ihritik |
C#
// C# implementation of the approach using System; class GFG { // Function to return the required position static int getPosition( int n, int m) { if (m > (n / 2)) return (m - (n / 2)); return (m + (n / 2)); } // Driver code static public void Main () { int n = 8, m = 5; Console.WriteLine(getPosition(n, m)); } } // This code is contributed by ajit. |
PHP
<?php // PHP implementation of the approach // Function to return the // required position function getPosition( $n , $m ) { if ( $m > ( $n / 2)) return ( $m - ( $n / 2)); return ( $m + ( $n / 2)); } // Driver code $n = 8; $m = 5; echo getPosition( $n , $m ); // This code is contributed // by ihritik ?> |
Javascript
<script> // Javascript implementation of the approach // Function to return the required position function getPosition( n, m) { if (m > (n / 2)) return (m - parseInt(n / 2)); return (m + parseInt(n / 2)); } // Driver code var n = 8, m = 5; document.write(getPosition(n, m)); </script> |
1
Time Complexity: O(1), as we are not using any loops.
Auxiliary Space: O(1), as we are not using any extra space.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!