CF618A.Slime Combining
入门
通过率:0%
时间限制:2.00s
内存限制:256MB
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.
你的朋友最近在你生日时送了你一些史莱姆。你一共有 n 个史莱姆,初始值均为 1。
你将用这些史莱姆进行一场游戏。初始时,你将一个史莱姆单独放在一行中。随后,你将剩余的 n−1 个史莱姆依次添加进来。每次添加一个史莱姆时,你将其放置在当前所有已放置史莱姆的最右侧。接着,只要该行最右侧的两个史莱姆具有相同的值 v,你就将它们合并为一个值为 v+1 的新史莱姆。
你希望知道:在添加完全部 n 个史莱姆后,该行最终的状态是什么。请按从左到右的顺序输出该行中各个史莱姆的值。
输入格式
The first line of the input will contain a single integer, n (1 ≤ n ≤ 100 000).
输入的第一行包含一个整数 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.
输出一行,包含 k 个整数,其中 k 是执行完题目描述中的操作后该行中史莱姆的数量。这些数中第 i 个数应为从左往右数第 i 个史莱姆的值。
输入输出样例
输入#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
在第一个样例中,我们只有一个值为 1 的史莱姆。棋盘的最终状态仅包含一个值为 1 的史莱姆。
在第二个样例中,我们执行以下步骤:
初始时,我们在一行中单独放置一个史莱姆。因此,该行初始为 1。
接着,我们再添加一个史莱姆。此时该行为 1 1。由于最右侧的两个史莱姆值相同,我们需要将它们合并为一个值为 2 的史莱姆。因此,棋盘的最终状态为 2。
在第三个样例中,在添加前两个史莱姆后,该行为 2;再添加一个史莱姆后,该行变为 2 1。
在最后一个样例中,各步状态如下所示:
- 1
- 2
- 2 1
- 3
- 3 1
- 3 2
- 3 2 1
- 4
输入解题思路,AI测评打分。不知道怎么写?