Dado el tiempo requerido por un total de N+1 tuberías donde se utilizan N tuberías para llenar la Cisterna y se utiliza una sola tubería para vaciar la Cisterna. La tarea es calcular la cantidad de tiempo en que se llenará la cisterna si todas las tuberías N+1 se abren juntas.
Ejemplos :
Input: n = 2, pipe1 = 12 hours, pipe2 = 14 hours, emptypipe = 30 hours Output: 8 hours Input: n = 1, pipe1 = 12 hours emptypipe = 18 hours Output: 36 hours
Acercarse:
- Si una tubería1 puede llenar una cisterna en ‘n’ horas, entonces en 1 hora, la tubería1 podrá llenar ‘1/n’ cisterna.
- De manera similar, si una tubería2 puede llenar una cisterna en ‘m’ horas, entonces, en una hora, la tubería2 podrá llenar ‘1/m’ de cisterna.
- Pronto…. para otras tuberías.
Entonces, el trabajo total realizado para llenar una cisterna con N tubos en 1 hora es
1/n + 1/m + 1/p…… + 1/z
Donde n, m, p….., z son el número de horas que tarda cada tubería respectivamente.El resultado de la expresión anterior será la parte del trabajo realizado por todas las tuberías juntas en 1 hora, digamos a/b .
Para el cálculo el tiempo que se tarda en llenar la cisterna será b/a .
Considere un ejemplo de dos tuberías:
Tiempo que tarda la 1.ª tubería en llenar la cisterna = 12 horas
Tiempo que tarda la 2.ª tubería en llenar la cisterna = 14 horas
Tiempo que tarda la 3.ª tubería en vaciar la cisterna = 30 horas
Trabajo realizado por la 1.ª tubería en 1 hora = 1/12
Trabajo realizado por la 2.ª tubería en 1 hora = 1/14
Trabajo realizado por la 3.ª tubería en 1 hora = – (1/30) mientras vacía la tubería.
Entonces, el trabajo total realizado por todas las tuberías en 1 hora es
=> ( 1/12 + 1/ 14 ) – (1/30)
=> ((7 + 6 ) / (84)) – (1/30)
= > ((13) / (84)) – (1 / 30)
=> 51 / 420
Entonces, para Llenar la cisterna el tiempo requerido será de 420 / 51 es decir 8 horas Aprox .
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 calculate the time float Time(float arr[], int n, int Emptypipe) { float fill = 0; for (int i = 0; i < n; i++) fill += 1 / arr[i]; fill = fill - (1 / (float)Emptypipe); return 1 / fill; } // Driver Code int main() { float arr[] = { 12, 14 }; float Emptypipe = 30; int n = sizeof(arr) / sizeof(arr[0]); cout << floor(Time(arr, n, Emptypipe)) << " Hours"; return 0; }
Java
// Java implementation of // above approach import java.io.*; class GFG { // Function to calculate the time static float Time(float arr[], int n, float Emptypipe) { float fill = 0; for (int i = 0; i < n; i++) fill += 1 / arr[i]; fill = fill - (1 / (float)Emptypipe); return 1 / fill; } // Driver Code public static void main (String[] args) { float arr[] = { 12, 14 }; float Emptypipe = 30; int n = arr.length; System.out.println((int)(Time(arr, n, Emptypipe)) + " Hours"); } } // This code is contributed // by inder_verma.
Python3
# Python3 implementation of # above approach # Function to calculate the time def Time(arr, n, Emptypipe) : fill = 0 for i in range(0,n) : fill += (1 / arr[i]) fill = fill - (1 / float(Emptypipe)) return int(1 / fill) # Driver Code if __name__=='__main__': arr = [ 12, 14 ] Emptypipe = 30 n = len(arr) print((Time(arr, n, Emptypipe)) , "Hours") # This code is contributed by # Smitha Dinesh Semwal
C#
// C# implementation of // above approach using System; class GFG { // Function to calculate the time static float Time(float []arr, int n, float Emptypipe) { float fill = 0; for (int i = 0; i < n; i++) fill += 1 / arr[i]; fill = fill - (1 / (float)Emptypipe); return 1 / fill; } // Driver Code public static void Main () { float []arr = { 12, 14 }; float Emptypipe = 30; int n = arr.Length; Console.WriteLine((int)(Time(arr, n, Emptypipe)) + " Hours"); } } // This code is contributed // by inder_verma.
PHP
<?php // PHP implementation of above approach // Function to calculate the time function T_ime($arr, $n, $Emptypipe) { $fill = 0; for ($i = 0; $i < $n; $i++) $fill += 1 / $arr[$i]; $fill = $fill - (1 / $Emptypipe); return 1 / $fill; } // Driver Code $arr = array( 12, 14 ); $Emptypipe = 30; $n = count($arr); echo (int)T_ime($arr, $n, $Emptypipe) . " Hours"; // This code is contributed // by inder_verma. ?>
Javascript
<script> // Javascript implementation of above approach // Function to calculate the time function Time(arr, n, Emptypipe) { var fill = 0; for(var i = 0; i < n; i++) fill += 1 / arr[i]; fill = fill - (1 / Emptypipe); return 1 / fill; } // Driver Code var arr = [ 12, 14 ]; var Emptypipe = 30; var n = arr.length; document.write(Math.floor( Time(arr, n, Emptypipe)) + " Hours"); // This code is contributed by itsok </script>
8 Hours
Publicación traducida automáticamente
Artículo escrito por Naman_Garg y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA