Una persona se para en la fila de n personas, pero no sabe exactamente qué posición ocupa. Puede decir que no hay menos de ‘f’ personas paradas frente a él y no más de ‘b’ paradas detrás de él. La tarea es encontrar el número de posiciones diferentes que puede ocupar.
Ejemplos:
Input: n = 3, f = 1, b = 1 Output: 2 3 is the number of people in the line and there can be no less than 1 people standing in front of him and no more than 1 people standing behind him.So the positions could be 2 and 3 (if we number the positions starting with 1). Input: n = 5, f = 2, b = 3 Output: 3 In this example the positions are 3, 4, 5.
Enfoque: iteremos a través de cada elemento y verifiquemos si es apropiado para las condiciones a<=i-1 y ni<=b (para i de 1 a n). La primera condición se puede convertir en a+1<=i , y la condición ni<=b en nb<=i , luego la condición general se puede escribir max(a+1, nb)<=i y luego nuestra respuesta puede calcularse mediante la fórmula n-max(a+1, nb)+1 .
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ implementation of above approach #include <bits/stdc++.h> using namespace std; // Function to find the position int findPosition(int n, int f, int b) { return n - max(f + 1, n - b) + 1; } // Driver code int main() { int n = 5, f = 2, b = 3; cout << findPosition(n, f, b); return 0; }
Java
// Java implementation of above approach import java.util.*; import java.lang.*; import java.io.*; class GFG{ // Function to find the position static int findPosition(int n, int f, int b) { return n - Math.max(f + 1, n - b) + 1; } // Driver code public static void main(String args[]) { int n = 5, f = 2, b = 3; System.out.print(findPosition(n, f, b)); } }
Python3
# Python3 implementation of # above approach # Function to find the position def findPosition(n, f, b): return n - max(f + 1, n - b) + 1; # Driver code n, f, b = 5, 2, 3 print(findPosition(n, f, b)) # This code is contributed by # Sanjit_Prasad
C#
// C# implementation of above approach using System; class GFG { // Function to find the position static int findPosition(int n, int f, int b) { return n - Math.Max(f + 1, n - b) + 1; } // Driver code public static void Main() { int n = 5, f = 2, b = 3; Console.WriteLine(findPosition(n, f, b)); } } // This code is contributed // by inder_verma
PHP
<?php // PHP implementation of above approach // Function to find the position function findPosition($n, $f, $b) { return $n - max($f + 1, $n - $b) + 1; } // Driver code $n = 5; $f = 2; $b = 3; echo findPosition($n, $f, $b); // This code is contributed // by anuj_67 ?>
Javascript
<script> // Java Script implementation of above approach // Function to find the position function findPosition(n,f,b) { return n - Math.max(f + 1, n - b) + 1; } // Driver code let n = 5, f = 2, b = 3; document.write(findPosition(n, f, b)); //contributed by 171fa07058 </script>
3
Complejidad de tiempo: O(1)
Espacio Auxiliar: O(1)