finish extra/fuel-injection-perfection #14
21
extra/fuel-injection-perfection/constraints.txt
Normal file
21
extra/fuel-injection-perfection/constraints.txt
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
Java
|
||||||
|
====
|
||||||
|
Your code will be compiled using standard Java 8. All tests will be run by calling the solution() method inside the Solution class
|
||||||
|
|
||||||
|
Execution time is limited.
|
||||||
|
|
||||||
|
Wildcard imports and some specific classes are restricted (e.g. java.lang.ClassLoader). You will receive an error when you verify your solution if you have used a blacklisted class.
|
||||||
|
|
||||||
|
Third-party libraries, input/output operations, spawning threads or processes and changes to the execution environment are not allowed.
|
||||||
|
|
||||||
|
Your solution must be under 32000 characters in length including new lines and and other non-printing characters.
|
||||||
|
|
||||||
|
Python
|
||||||
|
======
|
||||||
|
Your code will run inside a Python 2.7.13 sandbox. All tests will be run by calling the solution() function.
|
||||||
|
|
||||||
|
Standard libraries are supported except for bz2, crypt, fcntl, mmap, pwd, pyexpat, select, signal, termios, thread, time, unicodedata, zipimport, zlib.
|
||||||
|
|
||||||
|
Input/output operations are not allowed.
|
||||||
|
|
||||||
|
Your solution must be under 32000 characters in length including new lines and and other non-printing characters.
|
||||||
66
extra/fuel-injection-perfection/readme.txt
Normal file
66
extra/fuel-injection-perfection/readme.txt
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
Fuel Injection Perfection
|
||||||
|
=========================
|
||||||
|
|
||||||
|
Commander Lambda has asked for your help to refine the automatic quantum antimatter fuel injection system for the LAMBCHOP doomsday device. It's a great chance for you to get a closer look at the LAMBCHOP -- and maybe sneak in a bit of sabotage while you're at it -- so you took the job gladly.
|
||||||
|
|
||||||
|
Quantum antimatter fuel comes in small pellets, which is convenient since the many moving parts of the LAMBCHOP each need to be fed fuel one pellet at a time. However, minions dump pellets in bulk into the fuel intake. You need to figure out the most efficient way to sort and shift the pellets down to a single pellet at a time.
|
||||||
|
|
||||||
|
The fuel control mechanisms have three operations:
|
||||||
|
|
||||||
|
1) Add one fuel pellet
|
||||||
|
2) Remove one fuel pellet
|
||||||
|
3) Divide the entire group of fuel pellets by 2 (due to the destructive energy released when a quantum antimatter pellet is cut in half, the safety controls will only allow this to happen if there is an even number of pellets)
|
||||||
|
|
||||||
|
Write a function called solution(n) which takes a positive integer as a string and returns the minimum number of operations needed to transform the number of pellets to 1. The fuel intake control panel can only display a number up to 309 digits long, so there won't ever be more pellets than you can express in that many digits.
|
||||||
|
|
||||||
|
For example:
|
||||||
|
solution(4) returns 2: 4 -> 2 -> 1
|
||||||
|
solution(15) returns 5: 15 -> 16 -> 8 -> 4 -> 2 -> 1
|
||||||
|
Quantum antimatter fuel comes in small pellets, which is convenient since the many moving parts of the LAMBCHOP each need to be fed fuel one pellet at a time. However, minions dump pellets in bulk into the fuel intake. You need to figure out the most efficient way to sort and shift the pellets down to a single pellet at a time.
|
||||||
|
|
||||||
|
The fuel control mechanisms have three operations:
|
||||||
|
|
||||||
|
1) Add one fuel pellet
|
||||||
|
2) Remove one fuel pellet
|
||||||
|
3) Divide the entire group of fuel pellets by 2 (due to the destructive energy released when a quantum antimatter pellet is cut in half, the safety controls will only allow this to happen if there is an even number of pellets)
|
||||||
|
|
||||||
|
Write a function called solution(n) which takes a positive integer as a string and returns the minimum number of operations needed to transform the number of pellets to 1. The fuel intake control panel can only display a number up to 309 digits long, so there won't ever be more pellets than you can express in that many digits.
|
||||||
|
|
||||||
|
For example:
|
||||||
|
solution(4) returns 2: 4 -> 2 -> 1
|
||||||
|
solution(15) returns 5: 15 -> 16 -> 8 -> 4 -> 2 -> 1
|
||||||
|
|
||||||
|
Languages
|
||||||
|
=========
|
||||||
|
|
||||||
|
To provide a Python solution, edit solution.py
|
||||||
|
To provide a Java solution, edit Solution.java
|
||||||
|
|
||||||
|
Test cases
|
||||||
|
==========
|
||||||
|
Your code should pass the following test cases.
|
||||||
|
Note that it may also be run against hidden test cases not shown here.
|
||||||
|
|
||||||
|
-- Python cases --
|
||||||
|
Input:
|
||||||
|
solution.solution('15')
|
||||||
|
Output:
|
||||||
|
5
|
||||||
|
|
||||||
|
Input:
|
||||||
|
solution.solution('4')
|
||||||
|
Output:
|
||||||
|
2
|
||||||
|
|
||||||
|
-- Java cases --
|
||||||
|
Input:
|
||||||
|
Solution.solution('4')
|
||||||
|
Output:
|
||||||
|
2
|
||||||
|
|
||||||
|
Input:
|
||||||
|
Solution.solution('15')
|
||||||
|
Output:
|
||||||
|
5
|
||||||
|
|
||||||
|
Use verify [file] to test your solution and see how it does. When you are finished editing your code, use submit [file] to submit your answer. If your solution passes the test cases, it will be removed from your home folder.
|
||||||
Loading…
x
Reference in New Issue
Block a user