🏡 index : github.com/captn3m0/codechef.git

---
{"category_name":"medium","problem_code":"BAKERY","problem_name":"Queue at the Bakery","problemComponents":{"constraints":"- $1\\le n\\le 50\\,000$ \n- $1\\le m\\le 10$\n- $1\\le d\\le 1000$\n- $0.4\\le p\\le 0.6$\n- The number $p$ is given with exactly $4$ digits after the decimal point.","constraintsState":true,"subtasks":"- 30 points : $1 \\leq R \\leq 10000$\n- 70 points : $1 \\leq R \\leq 10^9$\n","subtasksState":false,"inputFormat":"- The only line of the input contains the three integers $n$, $m$, $d$ and the real number $p$ – the number of seconds at which a customer may enter, the number of employees, the amount of seconds necessary to serve a customer, the probability that a customer enters at any given second.","inputFormatState":true,"outputFormat":"Print a single real number, the expected value of the total waiting time of all the customers. Your answer is considered correct if its relative or absolute error does not exceed $10^{-6}$.","outputFormatState":true,"sampleTestCases":{"0":{"id":1,"input":"2 1 5 0.4000","output":0.64,"explanation":"There is only one employee, it requires $5$ seconds to serve a customer and the probability that a customer enters at a given second is $0.4$.\n\nThe total waiting time is $0$ unless a customer enters at second $0$ (and is immediately served) and another customer enters after one second and has to wait for $5-1=4$ seconds before being served. The probability of this series of events is $0.4^2$; hence the expected total waiting times is $0.4^2\\cdot 4 = 0.64$.","isDeleted":false},"1":{"id":2,"input":"3 2 1000 0.5000","output":124.75,"explanation":"If there are in total at most $2$ customers, then noone waits since there are two employees. Hence, the total waiting time is $0$ unless there are $3$ customers, which happens with probability $0.5^3$. In such case, the last customer waits for $1000-2=998$ seconds. Hence the answer is $0.5^3\\cdot 998 = 124.75$.","isDeleted":false},"2":{"id":3,"input":"5 3 9 0.5891\n","output":2.1875381171,"explanation":"","isDeleted":false},"3":{"id":4,"input":"40 10 30 0.4567","output":86.7734103628,"explanation":"","isDeleted":false}}},"video_editorial_url":"","languages_supported":{"0":"CPP14","1":"C","2":"JAVA","3":"PYTH 3.6","4":"CPP17","5":"PYTH","6":"PYP3","7":"CS2","8":"ADA","9":"PYPY","10":"TEXT","11":"PAS fpc","12":"NODEJS","13":"RUBY","14":"PHP","15":"GO","16":"HASK","17":"TCL","18":"PERL","19":"SCALA","20":"LUA","21":"kotlin","22":"BASH","23":"JS","24":"LISP sbcl","25":"rust","26":"PAS gpc","27":"BF","28":"CLOJ","29":"R","30":"D","31":"CAML","32":"FORT","33":"ASM","34":"swift","35":"FS","36":"WSPC","37":"LISP clisp","38":"SQL","39":"SCM guile","40":"PERL6","41":"ERL","42":"CLPS","43":"ICK","44":"NICE","45":"PRLG","46":"ICON","47":"COB","48":"SCM chicken","49":"PIKE","50":"SCM qobi","51":"ST","52":"SQLQ","53":"NEM"},"max_timelimit":8,"source_sizelimit":50000,"problem_author":"dario2994","problem_tester":"","date_added":"5-01-2022","tags":{"0":"dario2994","1":"medium","2":"snckfl21","3":"snckfp21"},"problem_difficulty_level":"Unavailable","best_tag":"","editorial_url":"https://discuss.codechef.com/problems/BAKERY","time":{"view_start_date":1641747600,"submit_start_date":1641747600,"visible_start_date":1641747600,"end_date":1735669800},"is_direct_submittable":false,"problemDiscussURL":"https://discuss.codechef.com/search?q=BAKERY","is_proctored":false,"visitedContests":{},"layout":"problem"}
---
This is an example statement in markdown. This is the statement of the problem [TANDC](https://codechef.com/problems/TANDC) on CodeChef. The main statement starts with the next paragraph. Please make sure to remove this paragraph from your statement before publishing your problem. If your problem doesn't contain Subtasks, you should remove the section subtask too. We are using markdown the syntax of which can be seen [at](https://github.com/showdownjs/showdown/wiki/Showdown's-Markdown-syntax). We request you to not use any HTML tags in the statement, e.g. no p, ul, li, pre, br or b tags. If you face any issue, please contact admins or email us at help@codechef.com.

Tracy is teaching Charlie maths via a game called $N$-Cube, which involves three sections involving $N$.

Tracy gives Charlie a number $N$, and Charlie makes a list of $N$-th powers of integers in increasing order $1^N, 2^N, 3^N, \dot, \text{so on}$. This teaches him exponentiation.

Then Charlie performs the following subtraction game $N$ times: Take all pairs of consecutive numbers in the list and take their difference. These differences then form the new list for the next iteration of the game. Eg, if $N$ was 6, the list proceeds as $[1, 64, 729, 4096 ... ]$ to $[63, 685, 3367 ...]$, and so on $5$ more times.

After the subtraction game, Charlie has to correctly tell Tracy the $N$-th element of the list. This number is the *value of the game*.

After practice Charlie became an expert in the game. To challenge him more, Tracy will give two numbers $M$ (where $M$ is a prime) and $R$ instead of just a single number $N$, and the game must start from $M_R - 1$ instead of $N$. Since the *value of the game* can now become large, Charlie just have to tell the largest integer $K$ such that $M_K$ divides this number. Since even $K$ can be large, output $K$ modulo 1000000007 ($10^9 + 7$).

<aside style='background: #f8f8f8;padding: 10px 15px;'><div>All submissions for this problem are available.</div></aside>