COCI 2009/2010, Contest #7
Task COKOLADA
A new type of chocolate arrived in the local shop. The chocolate comes in bars, each bar consisting of N squares. Bars are factory made and only come in sizes which are full powers of two. In other words a single bar has 1, 2, 4, 8, 16, ... squares.
To fully assess the quality of chocolate Mirko must sample at least K squares. His friend Slavko would also like to try some of the chocolate. Since Mirko is in a hurry to try the chocolate himself, he decides to break the bar he bought in pieces, such that he has exactly K squares, and leaves the rest (if any) to Slavko. The bars are a bit brittle, so Mirko can break them only on their exact center. In other words, from one bar with D squares, he can get two bars with D/2 squares.
Write a program that will determine the minimal number of breaks Mirko must perform in order to obtain exactly K squares (not necessarily in one piece). Also, determine the smallest bar size Mirko must buy in order to have at least K squares.
Input
The first and only line of input will contain one integer K (1 ≤ K ≤ 1 000 000), the number of squares Mirko must sample.
Output
The first and only line of output should contain two integers, separated by a single space. The first integer is the smallest bar size Mirko must buy. The second the smallest number of breaks.
Sample Tests
Input6 Output8 2 |
Input7 Output8 3 |
Input5 Output8 3 |
All Submissions
Best Solutions
Point Value: 7
Time Limit: 1.00s
Memory Limit: 32M
Added: Jul 07, 2013
Languages Allowed:
C++03, PAS, C, HASK, ASM, RUBY, PYTH2, JAVA, PHP, SCM, CAML, PERL, C#, C++11, PYTH3
Comments (Search)
It's quiet in here...