The device consists of several blocks. For each block, the probability of its failure-free operation for a certain time (reliability) is known. If at least one of the device blocks fails, the entire device ceases to work, and therefore the probability of failure-free operation of the entire device P is found as the product of the reliability of its blocks: P device = p1 · p2 · ... · pN.
To increase the reliability of the device, it was decided to backup some units. Block reservation is the connection of one or several of the same blocks in parallel to it. In the event of an accident of the first block, the second one will perform its functions, etc., this replacement will not affect the reliability of all other blocks.
We assume that the probability of failure-free operation of a group of K identical blocks (including the original one) is found as follows: p '= 1 - (1 - p) K, where p is the probability of failure-free operation of one such block. The probability of failure-free operation of the device is then defined as P'device = p'1 · p'2 · ... · p'N.
The cost of each unit and the amount S allocated for the modernization of the entire device are known. It is required to find the maximum probability of device uptime, which we can obtain, provided that the total cost of the added blocks should not exceed S.
Input data
The first line of the input contains an integer N - the number of blocks in the device (1 ≤ N ≤ 30). The next N lines contain two numbers separated by a space - the probability of failure-free operation of the next block pi and its cost si (pi is a real number, 0 <pi ≤ 1, si is an integer, 1 ≤ si ≤ 1000). The last line contains an integer S - the amount allocated for the modernization of the device (0 ≤ S ≤ 1000).
Output
Print one number - the probability of the device’s uptime after modernization with an accuracy of at least four digits after the decimal point.
For example:
Input:
3
0.6 10
0.7 14
0.8 8
30
Output:
0.62899
Hi,
The problem you are posting is not straightforward as a brute force solution will be very expensive computationally. However, i have figured out a way to solve this which will be much faster than the brute force approach. I can develop this in python but as you can see, the cost is higher than what you had put as the expected budget.
Let me know if you are interested and we can discuss this further.
thanks
sanjay
C++ Programming, Python skilled professional with the required expertise. Can help to deliver the solution as needed on the expected lines. Please private message me to discuss the project further. Hope to build a long term business relationship. Thanks!
Hi Sir,
Python Core Development Course from Saylani Welfare Trust,2019
06 Months CADCAM Creo 2.0 Course from KTDMC in Collaboration with NAVTTC
14-May to 30-October 2018
Certificate of Computer Operator from Saylani Welfare Trust, 2014
AutoCad and SolidWorks.
Python Automation Bot Design,Web Scrapping and Basic Django Framework
Want to check my portfolio come on chat
Khizer
I believe I will be the best person for your work. I am an Algorithm Expert and had solved lots of programming problems in different online judges. So hope you will give me your work.