Calcule el costo adicional que se pagará por el equipaje en función del peso para viajes aéreos

Dada una array peso[] de tamaño N que contiene pesos de equipaje. Si los pesos están dentro de un umbral de W , entonces no requiere ningún costo adicional. Pero después de que los pesos cruzan el umbral, deben pagar un costo adicional de acuerdo con la siguiente tabla. La tarea es calcular el costo adicional del equipaje requerido.

Rango de exceso de peso  Costo por el exceso de peso
            0 – 50               100
          51 – 100               200
        101 – 150               300
        151 – 200               500
           > 200               1000

Ejemplos: 

Entrada: peso[] = {5, 4, 3, 6}, W = 8
Salida: 0
Explicación: Ningún peso cruza el umbral. Por lo tanto, no se incurre en ningún costo adicional.

Entrada: peso[] = {120, 135, 280, 60, 300}, W = 90
Salida: 1700
Explicación: El peso 120 es 30 más que el umbral. Por lo tanto, requiere un costo adicional de 100.
El peso 135 es 45 más que el umbral. Por lo tanto, requiere un costo adicional de 100.
El peso 280 es 190 más que el umbral. Por lo tanto, requiere un costo adicional de 500.
El peso 300 es 210 más que el umbral. Por lo tanto, requiere un costo adicional de 1000.
Y el peso 60 está dentro del umbral. Por lo tanto, no requiere ningún costo.
El costo adicional total es (100 + 100 + 500 + 1000) = 1700

 

Enfoque: El enfoque se basa en la siguiente observación. Si un equipaje tiene un peso superior al umbral W , incurre en un costo adicional de acuerdo con la tabla dada. Siga los pasos que se mencionan a continuación para resolver el problema:

  • Iterar la array desde el principio.
    • Compruebe si el equipaje actual tiene un peso superior a W.
      • Si es así, agregue un costo adicional según el exceso de peso siguiendo la tabla proporcionada.
      • De lo contrario, continúe con la iteración.
  • Devolver el coste extra total

A continuación se muestra la implementación del enfoque anterior,

C++

// C++ code to implement the above approach
#include <bits/stdc++.h>
using namespace std;
 
// Function to calculate the extra cost
int weighingMachine(int N, int weight[], int W)
{
    int amount = 0;
 
    // Loop to calculate the excess cost
    for (int i = 0; i < N; i++) {
        if (weight[i] - W > 0 && weight[i] - W <= 50)
            amount += 100;
        else if (weight[i] - W > 50 && weight[i] - W <= 100)
            amount += 200;
        else if (weight[i] - W > 100
                 && weight[i] - W <= 150)
            amount += 300;
        else if (weight[i] - W > 150
                 && weight[i] - W <= 200)
            amount += 500;
        else if (weight[i] - W > 200)
            amount += 1000;
    }
    return amount;
}
 
// Driver code
int main()
{
    int weight[] = { 120, 135, 280, 60, 300 };
    int N = 5;
    int W = 90;
 
    cout << weighingMachine(N, weight, W);
}
 
// This code is contributed by Samim Hossain Mondal.

Java

// Java code to implement the above approach
import java.util.*;
 
class GFG {
 
    // Function to calculate the extra cost
    static int weighingMachine(int N, int weight[], int W)
    {
        int amount = 0;
 
        // Loop to calculate the excess cost
        for (int i = 0; i < N; i++) {
            if (weight[i] - W > 0
                && weight[i] - W <= 50)
                amount += 100;
            else if (weight[i] - W > 50
                     && weight[i] - W <= 100)
                amount += 200;
            else if (weight[i] - W > 100
                     && weight[i] - W <= 150)
                amount += 300;
            else if (weight[i] - W > 150
                     && weight[i] - W <= 200)
                amount += 500;
            else if (weight[i] - W > 200)
                amount += 1000;
        }
        return amount;
    }
 
    // Driver code
    public static void main(String[] args)
    {
        int weight[] =
        { 120, 135, 280, 60, 300 };
        int N = 5;
        int W = 90;
 
        System.out.println(
          weighingMachine(N, weight, W));
    }
}

Python

# Python code to implement the above approach
 
# Function to calculate the extra cost
def weighingMachine(N, weight, W):
     
    amount = 0;
 
    # Loop to calculate the excess cost
    for i in range(0, N):
        if (weight[i] - W > 0 and weight[i] - W <= 50):
            amount = amount + 100
        elif (weight[i] - W > 50 and weight[i] - W <= 100):
            amount = amount + 200
        elif (weight[i] - W > 100
                 and weight[i] - W <= 150):
            amount = amount + 300
        elif (weight[i] - W > 150
                 and weight[i] - W <= 200):
            amount = amount + 500;
        elif (weight[i] - W > 200):
            amount = amount + 1000
             
    return amount
 
# Driver code
weight = [ 120, 135, 280, 60, 300 ]
N = 5
W = 90
 
print(weighingMachine(N, weight, W))
 
# This code is contributed by Samim Hossain Mondal.

C#

// C# code to implement the above approach
using System;
 
public class GFG {
 
  // Function to calculate the extra cost
  static int weighingMachine(int N, int []weight, int W)
  {
    int amount = 0;
 
    // Loop to calculate the excess cost
    for (int i = 0; i < N; i++) {
      if (weight[i] - W > 0
          && weight[i] - W <= 50)
        amount += 100;
      else if (weight[i] - W > 50
               && weight[i] - W <= 100)
        amount += 200;
      else if (weight[i] - W > 100
               && weight[i] - W <= 150)
        amount += 300;
      else if (weight[i] - W > 150
               && weight[i] - W <= 200)
        amount += 500;
      else if (weight[i] - W > 200)
        amount += 1000;
    }
    return amount;
  }
 
  // Driver code
  public static void Main(String[] args)
  {
    int []weight =
    { 120, 135, 280, 60, 300 };
    int N = 5;
    int W = 90;
 
    Console.WriteLine(
      weighingMachine(N, weight, W));
  }
}
 
// This code is contributed by 29AjayKumar

Javascript

<script>
        // JavaScript code for the above approach
 
 
        // Function to calculate the extra cost
        function weighingMachine(N, weight, W) {
            let amount = 0;
 
            // Loop to calculate the excess cost
            for (let i = 0; i < N; i++) {
                if (weight[i] - W > 0
                    && weight[i] - W <= 50)
                    amount += 100;
                else if (weight[i] - W > 50
                    && weight[i] - W <= 100)
                    amount += 200;
                else if (weight[i] - W > 100
                    && weight[i] - W <= 150)
                    amount += 300;
                else if (weight[i] - W > 150
                    && weight[i] - W <= 200)
                    amount += 500;
                else if (weight[i] - W > 200)
                    amount += 1000;
            }
            return amount;
        }
 
        // Driver code
 
        let weight =
            [120, 135, 280, 60, 300];
        let N = 5;
        let W = 90;
 
        document.write(
            weighingMachine(N, weight, W));
 
 
  // This code is contributed by Potta Lokesh
    </script>
Producción

1700

Complejidad temporal: O(N)
Espacio auxiliar: O(1)

Publicación traducida automáticamente

Artículo escrito por prathyushaists18 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 *