Hay n personas de pie en la circunferencia de un círculo. Dada la posición de una persona m , la tarea es encontrar la posición de la persona que se encuentra diametralmente opuesta a m en el círculo.
Ejemplos:
Entrada: n = 6, m = 2
Salida: 5
La posición 5 es opuesta a la 2 cuando hay 6 posiciones en totalEntrada: n = 8, m = 5
Salida: 1
Planteamiento: Hay dos casos:
- Si m > n/2 , la respuesta siempre será m – (n/2) .
- Si m ≤ n / 2 , la respuesta siempre será m + (n / 2) .
A continuación se muestra la implementación del enfoque anterior:
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>
Producción:
1
Complejidad de tiempo: O (1), ya que no estamos usando ningún bucle.
Espacio auxiliar: O(1), ya que no estamos utilizando ningún espacio adicional.