CF618A - Slime Combining

来源:互联网 发布:淘宝主播有什么条件 编辑:程序博客网 时间:2024/05/14 14:29

题目大衣是给你n个1,每次放到队列最右端,最右端两个数v一样的时候可以合并成v+1,求最后队列结果。

简单模拟,一个一个放,放完了写个while合并就好。

#include<cstdio>#include<iostream>#include<cstring>#include<string>#include<algorithm>#include<cmath>using namespace std;int n;int m;int a[110000];int  main(){scanf("%d",&n);m=0;for(int i=1;i<=n;i++){m++;a[m]=1;while(a[m]==a[m-1]){a[m-1]++;m--;}}for(int i=1;i<m;i++){printf("%d ",a[i]);}printf("%d\n",a[m]);return 0;}

0 0