CF618A.Slime Combining
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Your friend recently gave you some slimes for your birthday. You have n slimes all initially with value 1 .
You are going to play a game with these slimes. Initially, you put a single slime by itself in a row. Then, you will add the other n−1 slimes one by one. When you add a slime, you place it at the right of all already placed slimes. Then, while the last two slimes in the row have the same value v , you combine them together to create a slime with value v+1 .
You would like to see what the final state of the row is after you've added all n slimes. Please print the values of the slimes in the row from left to right.
输入格式
The first line of the input will contain a single integer, n ( 1<=n<=100000 ).
输出格式
Output a single line with k integers, where k is the number of slimes in the row after you've finished the procedure described in the problem statement. The i -th of these numbers should be the value of the i -th slime from the left.
输入输出样例
输入#1
1
输出#1
1
输入#2
2
输出#2
2
输入#3
3
输出#3
2 1
输入#4
8
输出#4
4
说明/提示
In the first sample, we only have a single slime with value 1 . The final state of the board is just a single slime with value 1 .
In the second sample, we perform the following steps:
Initially we place a single slime in a row by itself. Thus, row is initially 1.
Then, we will add another slime. The row is now 1 1. Since two rightmost slimes have the same values, we should replace these slimes with one with value 2 . Thus, the final state of the board is 2.
In the third sample, after adding the first two slimes, our row is 2. After adding one more slime, the row becomes 2 1.
In the last sample, the steps look as follows:
- 1
- 2
- 2 1
- 3
- 3 1
- 3 2
- 3 2 1
- 4