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> |
Output:
1
Time Complexity: O(1), as we are not using any loops.
Auxiliary Space: O(1), as we are not using any extra space.