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.
- Compruebe si el equipaje actual tiene un peso superior a W.
- 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>
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