题目链接:Codeforces 618A Slime Combining
题意:放
n
个
AC 代码:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <cmath>
#include <algorithm>
#include <vector>
#include <queue>
#include <map>
#define PI acos(-1.0)
#define CLR(a, b) memset(a, (b), sizeof(a))
#define fi first
#define se second
using namespace std;
typedef long long LL;
typedef pair<int, int> pii;
const int MAXN = 1e5+10;
const int INF = 0x3f3f3f3f;
const int MOD = 1e9 + 7;
void getmax(int &a, int b) {a = max(a, b); }
void getmin(int &a, int b) {a = min(a, b); }
void add(LL &x, LL y) { x += y; x %= MOD; }
priority_queue<int, vector<int>, greater<int> > Q;
map<int, int> fp;
int num[MAXN];
int main()
{
int n; cin >> n;
CLR(num, 0); int id = 0;
for(int i = 1; i <= n; i++)
{
num[++id] = 1;
while(num[id] == num[id-1])
{
num[id-1] = num[id] + 1;
id--;
}
}
for(int i = 1; i <= id; i++)
{
if(i > 1) cout << " ";
cout << num[i];
}
cout << endl;
return 0;
}