Número de posiciones diferentes en las que una persona puede pararse

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>
Producción: 

3

 

Complejidad de tiempo: O(1)

Espacio Auxiliar: O(1)

Publicación traducida automáticamente

Artículo escrito por indrajit1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *